[問題]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