[英]Pandas - appending to existing csv file problem
我正在使用 API 收集數據,並通過設置如下使用pandas.to_csv()
函數:
path, mode='a',header=False, index=False'
然而,結果相當奇怪。 API 收集的第一行插入到其他列而不是我創建的列。
如何解決這個問題呢?
您在其中編寫輸出的文件在最后一行的末尾沒有換行符 ( \\n
)。 因此,在該行的末尾添加了以下數據。
下面是一個例子:
with open('/tmp/file.csv', 'w') as f:
f.write('1,2')
pd.DataFrame([[3,4],[5,6]]).to_csv('/tmp/file.csv', mode='a', header=0, index=False)
輸出:
1,23,4
5,6
您要么需要確保第一次寫入在最后一行的末尾附加一個換行符,或者您可以使用以下方法修復您的文件:
with open('/tmp/file.csv', 'a') as f:
f.write('\n')
就在你to_csv
導出之前。
輸出:
1,2
3,4
5,6
這是修復文件的更聰明的方法,它會檢查文件的最后一個字符是否為\\n
,如果不是,則附加一個:
with open('/tmp/file.csv', 'r+') as f: # open file as read/append
f.seek(0, 2) # go to end of file
f.seek(f.tell()-1, 0) # come back one chacacter
if f.read() != '\n': # if last character is not \n
f.write('\n') # then append \n
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.