【问题标题】:make new dataframes from grouped dataframe automatically自动从分组数据框中创建新数据框
【发布时间】:2020-02-19 09:23:18
【问题描述】:

我有这个数据框分组


df1 = pd.DataFrame( { 
    "Name" : ["Alice", "Bob", "Mallory", "Mallory", "Bob" , "Mallory"] , 
    "City" : ["Seattle", "Seattle", "Portland", "Seattle", "Seattle", "Portland"] } )



group = df1.groupby('City')

for city, city_df in group:
    print(city)

    print(city_df)

如何在不指定新 dfs 的情况下将此输出放入新数据帧? 就像如果下次有 4 个组,我想自动获得 4 个 dfs

Portland
      Name      City
2  Mallory  Portland
5  Mallory  Portland
Seattle
      Name     City
0    Alice  Seattle
1      Bob  Seattle
3  Mallory  Seattle
4      Bob  Seattle

【问题讨论】:

标签: python pandas pandas-groupby


【解决方案1】:

您可以使用 groupby 对象创建字典:

d = dict(tuple(df1.groupby('City')))

print(d['Portland'])

    Name      City
2  Mallory  Portland
5  Mallory  Portland

【讨论】:

  • 你能告诉我如何将这个 dict 放入 separtedd dfs 吗? ` d = dict(tuple(df1.groupby('City'))) df2 = pd.DataFrame(d) ` 这给了我一个错误
  • 你不能有一个数据框的数据框 @ErwinFeld 如果你想要多个数据框,并且能够通过某个键对它们进行索引,这就是方式
【解决方案2】:

您可以使用魔术方法__iter__() 获取一个groupby 迭代器,并使用dict() 将其转换为字典:

dct = dict(df.groupby('City').__iter__())

如果您想从字典中获取单独的数据帧,您可以使用方法values()

df1, df2 = dct.values()

【讨论】:

  • 如何在不命名的情况下将 dict 自动转换为 dfs?
  • @ErwinFeld 我不知道。您可以将数据框放入列表中。你可以提出一个新问题。
猜你喜欢
  • 2022-07-31
  • 2021-09-08
  • 1970-01-01
  • 1970-01-01
  • 2016-10-14
  • 2020-02-29
  • 2018-07-14
  • 1970-01-01
相关资源
最近更新 更多