将多个数据帧导出到csv文件的最有效方法是什么?

2024-07-01 08:20:06 发布

您现在位置:Python中文网/ 问答频道 /正文

我有多个数据帧:

df1
df2
df3

我想把它们全部导出到csv文件中

df1.to_csv('df1.csv', index = False)
df2.to_csv('df2.csv', index = False)
df3.to_csv('df3.csv', index = False)

最有效的方法是什么

def printToCSV(number):
    num = str(num)
    csvTemp = "df99.csv"
    csv = csvTemp.replace('99',num)
    dfTemp = "df99"
    dfString = dfTemp.replace('99',num)
    #i know i cant use the .to_csv function on a string
    #but i dont know how iterate through different dataframes
    dfString.to_csv(csv, index = False)

for i in range(1,4):
    printToCSV(i)

如何调用不同的数据帧进行导出


Tags: csvto数据falseindexnumreplacedf1
3条回答

您可以通过以下方式将它们全部添加到列表中:

list_of_dataframes = [df1, df2, df3]

然后,您可以使用enumerate对列表进行迭代,以保持正在写入的数据帧的持续计数,并使用f字符串作为文件名:

for count, dataframe in enumerate(list_of_dataframes):
    dataframe.to_csv(f"dataframe_{count}.csv", index=False)

当您创建数据帧时,可以将其存储在适当的数据结构(如列表)中;当您想要创建csv时,可以使用map并执行相同的操作

dfs = []
for i in range(10):
    dfs.append(DataFrame())

result = [dfs[i].to_csv(f'df{i}') for i in range(10)]

如果您想坚持使用函数方法,请使用:

df_dict = {"df1": df1, "df2": df2, "df3": df3}


def printToCSV(num):
    df_dict[f"df{num}"].to_csv(f"df{num}.csv", index=False)

printToCSV(1) # will create "df1.csv"

但是,如果您想提高效率,我建议使用df列表(也建议使用@vtasca):

df_list = [df1, df2, df3]

for num, df in enumerate(df_list): # this will give you a number (starting from 0) and the df, in each loop
    df.to_csv(f"df{num}.csv", index=False)

或与dict一起工作:

df_dict = {"df1": df1, "df2": df2, "df3": df3}

for name, df in df_dict.items():
    df.to_csv(f"{name}.csv", index=False)

相关问题 更多 >

    热门问题