我想知道是否可以使用熊貓to_csv()
函數將數據幀添加到現有的csv文件。 csv文件與加載的數據具有相同的結構。如何將pandas數據添加到現有的csv文件?
84
A
回答
119
可以追加模式追加到CSV通過opening the file:
with open('my_csv.csv', 'a') as f:
df.to_csv(f, header=False)
如果這是您的CSV,foo.csv
:
,A,B,C
0,1,2,3
1,4,5,6
如果你讀了再追加,例如,df + 6
:
In [1]: df = pd.read_csv('foo.csv', index_col=0)
In [2]: df
Out[2]:
A B C
0 1 2 3
1 4 5 6
In [3]: df + 6
Out[3]:
A B C
0 7 8 9
1 10 11 12
In [4]: with open('foo.csv', 'a') as f:
(df + 6).to_csv(f, header=False)
foo.csv
變爲:
,A,B,C
0,1,2,3
1,4,5,6
0,7,8,9
1,10,11,12
203
您可以在熊貓指定的Python寫模式to_csv
功能。爲了追加它是'a'。
你的情況:
df.to_csv('my_csv.csv', mode='a', header=False)
默認模式爲 'W'。
14
我與一些頭使用檢查保障措施來處理這一切能輔助函數:
def appendDFToCSV_void(df, csvFilePath, sep=","):
import os
if not os.path.isfile(csvFilePath):
df.to_csv(csvFilePath, mode='a', index=False, sep=sep)
elif len(df.columns) != len(pd.read_csv(csvFilePath, nrows=1, sep=sep).columns):
raise Exception("Columns do not match!! Dataframe has " + str(len(df.columns)) + " columns. CSV file has " + str(len(pd.read_csv(csvFilePath, nrows=1, sep=sep).columns)) + " columns.")
elif not (df.columns == pd.read_csv(csvFilePath, nrows=1, sep=sep).columns).all():
raise Exception("Columns and column order of dataframe and csv file do not match!!")
else:
df.to_csv(csvFilePath, mode='a', index=False, sep=sep, header=False)
2
有點遲到了,但你也可以使用一個上下文管理器,如果你打開和關閉您的文件多次,或記錄數據,統計等
from contextlib import contextmanager
import pandas as pd
@contextmanager
def open_file(path, mode):
file_to=open(path,mode)
yield file_to
file_to.close()
##later
saved_df=pd.DataFrame(data)
with open_file('yourcsv.csv','r') as infile:
saved_df.to_csv('yourcsv.csv',mode='a',header=False)`
0
與pyspark dataframes最初開始 - 我類型轉換錯誤給定模式/列類型中(轉換爲熊貓DF的時,然後附加到CSV)我的pyspark數據框
迫使每個DF所有列是字符串類型,然後追加這CSV解決如下問題:
with open('testAppend.csv', 'a') as f:
df2.toPandas().astype(str).to_csv(f, header=False)
相關問題
- 1. Python - 將數據添加到現有的CSV文件?
- 2. 如何將附加列添加到現有的CSV文件?
- 3. 如何將值添加到現有的.csv文件
- 4. 迭代csv文件的行時,將計算列添加到pandas數據框中?
- 5. Powershell如何將csv文件中的數據添加到一列
- 6. 如何將數據添加到CSV文件的末尾(Python)
- 7. 如何將行添加到.csv文件
- 8. 如何將行添加到pandas中的現有數據框中? - python
- 9. 將數據添加到現有控件
- 10. 將pandas DataFrame列添加到CSV
- 11. 如何使用Python將新數據行添加到CSV文件?
- 12. 將XML數據從XML文件添加到現有XML文件
- 13. 將行添加到python中的現有csv文件中
- 14. 將元數據/標識符數據添加到CSV文件?
- 15. 如何將新列表附加到現有的CSV文件?
- 16. 如何將文件添加到SVN的現有文件夾?
- 17. 如何將文本添加到Swift中的.csv數據中?
- 18. 從CSV數據中將現有用戶添加到組列表
- 19. 將新行添加到現有csv文件中
- 20. 如何在java中使用opencsv將行線添加到現有的csv文件
- 21. 將數據添加到現有的XML文件
- 22. 將數據添加到結束現有的文件蟒蛇
- 23. 將字段添加到現有的COBOL數據文件中
- 24. Django ORM將數據添加到現有的JSONb文件中。
- 25. 將數據添加到現有GridFS的文件
- 26. 將數據添加到Android上的現有XML文件
- 27. 如何將Pandas數據框保存到壓縮的csv文件中?
- 28. 如何將多個csv文件中的單個數據列合併到Pandas中?
- 29. 如何將數組添加爲python中現有csv文件中的列?
- 30. 如何將數據追加到現有的Dropbox文件?
我認爲@tlingf建議的方法是隻有更好,因爲他是用建設 - 在熊貓圖書館的功能。他建議定義模式爲「a」。 「A」代表APPEND 'df.to_csv('my_csv.csv',mode ='a',header = False)' – Ayrat