python根据列中的值将数据框导出为多个csv文件



我有以下代码用于导出每个"id"到一个单独的CSV文件。每个csv文件都应该以id命名。在我的例子中,我们应该有三个不同的csv文件,分别命名为23、24和25。我有下面的代码,但它给了我一个错误。谢谢。

import pandas as pd
path = "users/AR/csv files"
for (id), id in df.groupby(['id']):
group.to_csv(f'{id}.csv', directory=path, index=False)
NameError: name 'group' is not defined
<表类>id日期数tbody><<tr>232/2/201624242/4/201656252/3/2016135233/4/201646243/8/2016176253/9/201623233/16/201698243/13/2016114253/17/201643

修改:

for (id), id in df.groupby(['id']):

:

for id, group in df.groupby(['id']):

当迭代groupby对象时,您将从特定的组子数据帧(此处为group)中获得单独的分组值(在您的示例中为id)。id为csv文件命名,groupdf为csv文件命名。

此外,to_csv方法中没有directory参数。最简单的方法是在文件名字符串中包含路径,如f'users/AR/csv files/{id}.csv'。如果您需要与操作系统无关的解决方案,您可以使用os.path方法。

这可以通过list comps来实现:

dfs = [x.reset_index(drop=True) for _, x in df.groupby("id")]
[x.to_csv(f"users/AR/csv files/{x['id'][0]}.csv", index=False) for x in dfs]

最新更新