循环浏览字典并将dict中的每个数据帧保存为csv?

2024-03-29 06:15:16 发布

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

我有一个数据框,看起来像下面的,但是有数千行数据

ID#  Segment Sub-Segment Account Manager Name
1234 America Midwest     Walmart Bobby Jindal
4567 America Midwest     Target  Bobby Jindal
5678 America Northeast   Dunkin  Peter Thiel

我的最终目标是为Manager Name列中的每个唯一值创建一个单独的数据框,并将该数据框标记为Manager的名称。因此,上面的数据集将输出两个dfs

所以我决定创建一个dict,现在已经创建了唯一的数据帧,但我现在遇到的问题是,我想将每个数据帧保存为csv,命名约定为管理器名称“Bobby Jindal.csv”

df_sliced={}
for name in df['Manager Name'].unique():
    df_sliced[name]=df[df['Manager Name']==name]

我不确定下一步是如何将dict中的每个数据帧保存为csv。你能帮我做这件事并帮我做语法吗


3条回答

您可以通过以下操作进一步简化代码:

for name, g in df.groupby('Manager Name'):
    g.to_csv(f'{name}.csv')

to_csv添加到循环的末尾:

df_sliced={}
for name in df['Manager Name'].unique():
    df_sliced[name]=df[df['Manager Name']==name]
    df_sliced[name].to_csv(f'{name}.csv', index=False)
>>> %cat Bobby\ Jindal.csv
ID#,Segment,Sub-Segment,Account,Manager Name
1234,America,Midwest,Walmart,Bobby Jindal
4567,America,Midwest,Target,Bobby Jindal

>>> %cat Peter\ Thiel.csv
ID#,Segment,Sub-Segment,Account,Manager Name
5678,America,Northeast,Dunkin,Peter Thiel

使用pandas.to_csv

for name in df_sliced:
    df_sliced[name].to_csv(f"{name}.csv")

如果要将csv保存到当前工作目录以外的其他位置,请在to_csv中指定完整路径,如:df_sliced[name].to_csv(f"C:/folder/subfolder/{name}.csv")

相关问题 更多 >