Pandas 追加資料到 CSV 中

Manav Narula 2020年12月19日
Pandas 追加資料到 CSV 中

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

pandas append to csv.png

儲存的 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 Narula avatar Manav Narula avatar

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