автоматически создавать новые кадры данных из сгруппированных данных - PullRequest
0 голосов
/ 23 октября 2019

Я сгруппировал этот фрейм данных


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

Ответы [ 2 ]

1 голос
/ 23 октября 2019

Вы можете создать словарь из объекта groupby с помощью:

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

print(d['Portland'])

    Name      City
2  Mallory  Portland
5  Mallory  Portland
0 голосов
/ 23 октября 2019

Вы можете использовать магический метод __iter__(), чтобы получить групповой итератор и преобразовать его в словарь с помощью dict():

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

Если вы хотите получить отдельные кадры данных из словаря, вы можете использоватьметод values():

df1, df2 = dct.values()
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...