我想知道是否可以使用pandas to_csv()
函数将数据帧添加到现有的csv文件。csv文件与加载的数据具有相同的结构。
发布于 2013-08-01 00:19:00
您可以在pandas to_csv
函数中指定python写入模式。对于append,它是'a‘。
在您的案例中:
df.to_csv('my_csv.csv', mode='a', header=False)
默认模式为'w‘。
发布于 2015-05-18 06:49:32
我使用了一个小助手函数和一些头检查保护措施来处理所有这些问题:
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)
发布于 2018-01-25 23:51:41
最初从pyspark dataframes开始-在pyspark dataframe中给定模式/列类型的情况下,我得到了类型转换错误(转换为pandas df,然后附加到csv)。
通过强制每个df中的所有列都是string类型,然后将其附加到csv,如下所示解决了此问题:
with open('testAppend.csv', 'a') as f:
df2.toPandas().astype(str).to_csv(f, header=False)
https://stackoverflow.com/questions/17530542
复制相似问题