Python - 如何使用不同的文件名保存CSV文件?

时间:2017-03-21 05:02:25

标签: python csv pandas export-to-csv

我有5个dictionary,列'天''数字''id'' recordDay',我将所有5个数据帧放在df1 df2 day number id recordDay day number id recordDay 2017-03-21 17 1 1990-01-01 2016-03-21 6 2 1991-02-01 2017-03-22 19 1 1990-01-01 2016-03-22 8 2 1991-02-01 2017-03-23 21 1 1990-01-01 2016-03-23 10 2 1991-02-01 中。我想将5个数据帧保存在5个CSV文件中,文件名基于'id''recordDay'。这是dataframe1和dataframe2

的示例
'id_1_1991_01_01.csv'

是否可以保存包含此类文件名的5个CSV文件,'id_2_1991_02_01.csv''id_3_1991_03_01.csv''id_4_1991_04_01.csv''id_5_1991_05_01.csv''id_1.csv' 或者'id_5.csv' ... pd.concat(df_dict).to_csv('data.csv', index = False, data_format = '%Y-%m-%d) 会更好吗?

我使用了以下代码,但它只保存了一个CSV文件。

{{1}}

1 个答案:

答案 0 :(得分:3)

迭代字典 - 使用.iloc []获取名称的recordID和id值。

df1 = pandas.DataFrame(numpy.random.randn(3, 4), columns=[["day", "number", "id", "recordDay"]])
df2 = pandas.DataFrame(numpy.random.randn(3, 4), columns=[["day", "number", "id", "recordDay"]])
df3 = pandas.DataFrame(numpy.random.randn(3, 4), columns=[["day", "number", "id", "recordDay"]])

df_dict={"data_frame1":df1, "data_frame2": df2, "data_frame3": df3}

for name, df in df_dict.items():
    #get the id and recordDay values from each df
    df_id=df['id'].iloc[0]
    df_record_day=df['recordDay'].iloc[0]

    #generate a unique file name based on the id and record
    file_name="id_"+str(df_id)+"_"+str(df_record_day)+".csv"

    #create the CSV
    df.to_csv(file_name, index = False, data_format = '%Y-%m-%d')

或者您可以使用数组列表而不是字典

df_list=[df1, df2, df3]

for df in df_list:
    #get the id and recordDay values from each df
    df_id=df['id'].iloc[0]
    df_record_day=df['recordDay'].iloc[0]

    #generate a unique file name based on the id and record
    file_name="id_"+str(df_id)+"_"+str(df_record_day)+".csv"

    #create the CSV
    df.to_csv(file_name, index = False, data_format = '%Y-%m-%d')