[问题]CSV读写相关问题

楼主: yimean (温柔杀手)   2019-01-23 13:38:09
各位板上的大大日安
我有一个CSV档资料长的如下样貌
A,B,C,D
E,H,,
F,I,J,K
G,,L,M
我用很基本的方法读入,可以正确打印出来。
with open('metadata.csv') as csvFile:
csvReader=csv.reader(csvFile)
listReport=list(csvReader)
for row in listReport:
print(row)
1.请问我要怎么知道这是几乘几的资料矩阵?
2.如果我要填入listReport[1][2]一个字串,我可以先将值用变量的方法给定
后write进去吗?
像是这样listReport[1][2] = O
3.写入CSV档只能全部复写吗?能不能像Excel一样从某一列开始写就好?
以上,烦请拨冗解惑,感谢。
作者: jasonfghx (工人)   2019-01-23 13:42:00
就这样?用读一次k=k+1变成pd.DataFrame试看看
楼主: yimean (温柔杀手)   2019-01-23 14:21:00
@j大 请问这个方法是不是要import pandas?其他问题是否有方向可供参考~?
作者: lajji (喇机)   2019-01-23 14:32:00
推荐你用pandasimport pandas as pddf = pd.read_csv('metadata.csv')df.shape
楼主: yimean (温柔杀手)   2019-01-23 14:37:00
@l大 感谢指导,请问一下如果import pandas,执行档包起来会不会很大?
作者: jasonfghx (工人)   2019-01-23 14:58:00
with open 你用这种方法是应用在这种情况https://imgur.com/uWpDMrK懂?
楼主: yimean (温柔杀手)   2019-01-23 15:02:00
再请教一个问题,我用这个方法会找不到metadata.csv这个档案,但是如果我用with open的方式,却可以正确打开。我查了一下是工作路径的问题,但是with open为何不会有问题?我的.py档案跟.csv都是在同一个资料夹内。啊,我查到了,是中文路径的问题。@j大,明白了,谢谢。再请教一个问题。我用print(df)印出来的东西却很奇怪。https://imgur.com/swPRXo0我用的IDE是VS2017
作者: jasonfghx (工人)   2019-01-23 16:53:00
with open 好像是模拟你打开档案 他不是真的把资料汇入
作者: asd2213857 (RyanF)   2019-01-23 18:58:00
不用open了 直接用pd.read_csv 开启档名
作者: s860134 (s860134)   2019-01-23 20:51:00
其实列在读第一行就知道了 行则是要读完才知道
作者: Sunal (SSSSSSSSSSSSSSSSSSSSSSS)   2019-01-24 00:42:00
这需要用到pandas? 包起会很大没错
楼主: yimean (温柔杀手)   2019-01-24 10:46:00
@S大,我后来是用循环判断有多少列,就没有用Pandas了
作者: Yshuan (倚絃)   2019-01-25 14:15:00
https://docs.python.org/2/library/csv.html 有内建的如果考量到不想多包其他library的话 可以考虑

Links booklink

Contact Us: admin [ a t ] ucptt.com