既存のcsvファイルの最後に新しいDataFrameデータを追加する方法を疑問に思いますか? to_csvはそのような機能について言及していません。前もって感謝します。
ファイルモードを引数としてto_csvメソッドに渡すこともできます
df.to_csv(file_name, header=False, mode = 'a')
私が使用する小さなヘルパー関数(Joe Hooperの回答に基づく)と、すべてを処理するためのいくつかのヘッダーチェックのセーフガード:
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)
完全なソリューションであるAndyに感謝します。
f = open(filename, 'a') # Open file as append mode
df.to_csv(f, header = False)
f.close()