Pandas 追加資料到 CSV 中
Manav Narula
2020年12月19日
Python Pandas 允許我們有效地操作和管理資料。我們可以建立和管理 DataFrames,並對其進行各種操作。它還允許我們讀取外部的 CSV 或 excel 檔案,匯入 DataFrames,對它們進行操作,並將它們儲存回來。在儲存資料的過程中,有一個有趣的功能是使用引數 a
的追加模式,它可以用來將資料追加到已經存在的 CSV 檔案中。
本文將介紹如何使用 Pandas 將資料追加到 CSV 中。
import pandas as pd
df = pd.DataFrame([[6,7,8],
[9,12,14],
[8,10,6]], columns = ['a','b','c'])
print(df)
df.to_csv(r"C:\Test\data.csv", index = False)
df2 = pd.DataFrame([[4,1,3],
[6,7,2],
[5,9,4]], columns = ['a','b','c'])
print(df2)
df2.to_csv(r"C:\Test\data.csv", mode = 'a', header = False, index = False)
輸出:
a b c
0 6 7 8
1 9 12 14
2 8 10 6
a b c
0 4 1 3
1 6 7 2
2 5 9 4
儲存的 CSV 檔案將同時具有兩個 DataFrames,並將 df2
的資料追加到原始檔案中。
我們還可以在這段程式碼中增加另一個功能。只需幾行程式碼,我們就可以確保 to_csv()
函式在檔案不存在的情況下建立一個檔案,在檔案已經存在的情況下跳過標頭檔案。我們將使用 with
語句進行異常處理,使用 open()
開啟一個檔案。
import pandas as pd
df = pd.DataFrame([[6,7,8],
[9,12,14],
[8,10,6]], columns = ['a','b','c'])
print(df)
df.to_csv(r"C:\Test\data.csv", index = False)
df2 = pd.DataFrame([[4,1,3],
[6,7,2],
[5,9,4]], columns = ['a','b','c'])
print(df2)
with open(r"C:\Test\data.csv", mode = 'a') as f:
df2.to_csv(f, header=f.tell()==0,index = False)
輸出:
a b c
0 6 7 8
1 9 12 14
2 8 10 6
a b c
0 4 1 3
1 6 7 2
2 5 9 4
檔案物件的 tell()
方法返回當前游標位置。因此,如果檔案為空或不存在,f.tell==0
為 True,這樣 header
就被設定為 True
;否則 header
就被設定為 False
。
Author: Manav Narula
Manav is a IT Professional who has a lot of experience as a core developer in many live projects. He is an avid learner who enjoys learning new things and sharing his findings whenever possible.
LinkedIn