【问题标题】:Create multiple data frames from one -python从一个 -python 创建多个数据帧
【发布时间】:2022-01-12 15:48:03
【问题描述】:

我有一个大文件(>500 行),其中包含列表中每个唯一项目的多个数据点,例如:

cheese weight location
gouda 1.4 AL
gouda 2 TX
gouda 1.2 CA
cheddar 5.3 AL
cheddar 6 MN
chaddar 2 WA
Havarti 4 CA
Havarti 4.2 AL

我想为每个奶酪制作数据框来存储相关数据

我有这个:

main_cheese_file = pd.read_csv('CheeseMaster.csv')

cut_the_cheese = main_cheese_file.cheese.unique()
melted = {elem: pd.DataFrame() for elem in cut_the_cheese}

for slice in melted.slice():
    melted[slice] = main_cheese_file[:][main_cheese_file.cheese == slice]

把它分成我想要的独特的东西。

我想用它做的是制作可以为每个奶酪导出的 df,以奶酪名称作为文件名。

到目前为止,我可以强制使用它

 melted['Cheddar'].to_csv('Cheddar.csv') 

然后得到切达干酪....

但我不想知道并输入 500 行列表中的每种奶酪...

有没有办法将此添加到我的循环中?

【问题讨论】:

    标签: python pandas loops


    【解决方案1】:

    你可以只遍历一个 groupby 对象

    import pandas as pd
    
    df = pd.read_csv('CheeseMaster.csv')
    for k,v in df.groupby('cheese'):
        v.to_csv(f'{k}.csv', index=False)
    

    【讨论】:

    • 谢谢!这看起来确实要简单得多 - 它只拆分​​出一个名为 {k} 的 csv 文件...
    • @PorscheAdams 确保使用f-string:f'{k}.csv'
    • 嗯 - 这很重要!谢谢你!感谢您帮助我编辑问题 - 我不知道如何为我的奶酪制作一张漂亮的桌子!
    • @PorscheAdams 没问题,祝你好运。
    猜你喜欢
    • 2022-08-12
    • 1970-01-01
    • 2022-08-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-24
    相关资源
    最近更新 更多