首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >循环遍历字典,并将每个数据存储在dict中作为csv?

循环遍历字典,并将每个数据存储在dict中作为csv?
EN

Stack Overflow用户
提问于 2021-08-18 14:51:07
回答 3查看 300关注 0票数 0

我有一个数据文件,类似于下面的内容,但是有数千行数据

代码语言:javascript
复制
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列中的每个唯一值创建一个单独的数据框架,并将dataframe标记为Manager的名称。因此,上述数据集将输出两个dfs。

因此,我决定创建一个dict,现在已经创建了唯一的数据格式,但我现在遇到的问题是,我想将每个数据作为csv保存,命名约定是Manager名,所以“bo比Jindal.csv”

代码语言:javascript
复制
df_sliced={}
for name in df['Manager Name'].unique():
    df_sliced[name]=df[df['Manager Name']==name]

我不知道下一步是将dict中的每个数据文件保存为csv。你能帮我做这个和语法吗?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2021-08-18 14:54:15

在循环结束时添加to_csv广告:

代码语言:javascript
复制
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)
代码语言:javascript
复制
>>> %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
票数 1
EN

Stack Overflow用户

发布于 2021-08-18 16:07:11

您可以通过以下方法进一步简化代码:

代码语言:javascript
复制
for name, g in df.groupby('Manager Name'):
    g.to_csv(f'{name}.csv')
票数 3
EN

Stack Overflow用户

发布于 2021-08-18 14:53:15

使用pandas.to_csv

代码语言:javascript
复制
for name in df_sliced:
    df_sliced[name].to_csv(f"{name}.csv")

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

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/68834655

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档