簡體   English   中英

Pandas - 附加到現有的 csv 文件問題

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM