Pandas 追加数据到 CSV 中
Manav Narula
2024年2月15日
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
。
作者: 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