pandas DataFrame output end of csv

后端 未结 4 2048
死守一世寂寞
死守一世寂寞 2020-11-29 22:18

I wonder how to add new DataFrame data onto the end of an existing csv file? The to_csv doesn\'t mention such functionality.

4条回答
  •  陌清茗
    陌清茗 (楼主)
    2020-11-29 22:58

    A little helper function I use (based on Joe Hooper's answer) with some header checking safeguards to handle it all:

    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)
    

提交回复
热议问题