重复将多个 Panda 数据集导出到多个 csv 文件的任务
Posted
技术标签:
【中文标题】重复将多个 Panda 数据集导出到多个 csv 文件的任务【英文标题】:Repeat the task of exporting multiple Panda datames into multiple csv-files 【发布时间】:2021-05-01 03:35:34 【问题描述】:我对 Pandas/Python 有点陌生(更了解 SAS),但我的任务如下:我有四个 Pandas 数据框,我想将它们中的每一个导出到一个单独的 csv 文件中。 csv 的名称应与原始数据帧相同(forsyning.csv、inntak.csv 等)。
到目前为止,我已经制作了一个包含数据帧名称的列表,然后尝试将该列表放入 for 循环中,以便一个接一个地生成一个 csv。但我只做了一半。到目前为止我的代码:
df_list = ['forsyning', 'inntak', 'behandling', 'transport']
for i in df_list:
i.to_csv('.csv'.format(i), index=False, decimal=',', sep=';')
我认为缺少的是正确的引用,它在上面的代码中显示“i.to_csv”,因为它现在只给我错误“'str' object has no attribute 'to_csv'”。我只是不知道如何以正确的方式扭曲这段代码 - 感谢任何关于这件事的建议。谢谢。
【问题讨论】:
【参考方案1】:如果需要将 DataFrames 列表写入文件,您需要 2 个列表 - 第一个用于 DataFrames 对象,第二个用于字符串中的新文件名:
df_list = [forsyning, inntak, behandling, transport]
names = ['forsyning', 'inntak', 'behandling', 'transport']
所以对于两个列表的写入使用zip
并写入df
:
for i, df in zip(names, df_list):
df.to_csv('.csv'.format(i), index=False, decimal=',', sep=';')
或者使用 dict.items()
的 DataFrames 和循环值字典:
df_dict = 'forsyning': forsyning, 'inntak':inntak,
'behandling': behandling, 'transport': transport
for i, df in df_dict.items():
df.to_csv('.csv'.format(i), index=False, decimal=',', sep=';')
【讨论】:
你搞定了...非常感谢,两个列表在这里解决了我的小问题 如何根据数据框的名称创建字符串?那就是从列表中的第一个数据帧生成'forsyning'
? (或相反)然后你可以消除第二个列表的需要。
老实说,我并没有从数据框的名称中派生字符串——为了这个例子,我只是手动编写了它。但是,如果您有办法根据第二个(反之亦然)得出第一个列表,我愿意接受建议。这可能会进一步简化代码(消除您提到的第二个列表)。【参考方案2】:
您的 df_list 应该有一个 dataframe
对象列表。而是您似乎将str
格式的数据框名称作为元素。
我相信你的 df_list 应该是:
df_list = [forsyning, inntak, behandling, transport]
【讨论】:
同意,这是解决方案的一部分...感谢您的评论以上是关于重复将多个 Panda 数据集导出到多个 csv 文件的任务的主要内容,如果未能解决你的问题,请参考以下文章