преобразовывать сгруппированные данные с помощью groupby в фреймы данных - PullRequest
3 голосов
/ 15 апреля 2019

как я могу сделать, чтобы преобразовать мои сгруппированные данные во фрейм данных. Каждая группа в одном кадре данных? я сделал это, чтобы сгруппировать свои данные Я написал:

df = pd.DataFrame({'Animal' : ['Falcon', 'Falcon',
                               'Parrot', 'Parrot'],
                   'Max Speed' : [380., 370., 24., 26.]})
df.groupby('Animal')

Ответы [ 3 ]

3 голосов
/ 15 апреля 2019

Использование dict понимание :

animals = {idx: grp for idx, grp in df.groupby('Animal')}

Доступ с ключом «Животное», например:

animals['Falcon']

[вне]

   Animal  Max Speed
0  Falcon      380.0
1  Falcon      370.0
0 голосов
/ 15 апреля 2019
df

   Animal  Max Speed
0  Falcon      380.0
1  Falcon      370.0
2  Parrot       24.0
3  Parrot       26.0

Вместо groupby вы можете использовать .loc для получения желаемых результатов в отдельных фреймах данных

df1 = df.loc[df['Animal'] == 'Falcon'].reset_index(drop = True)
df1

   Animal  Max Speed
0  Falcon      380.0
1  Falcon      370.0

df2 = df.loc[df['Animal'] == 'Parrot'].reset_index(drop = True)
df2

   Animal  Max Speed
0  Parrot       24.0
1  Parrot       26.0

Вы можете использовать цикл для нескольких фреймов данных

P.S. Попугай и Сокол - Птицы; -)

0 голосов
/ 15 апреля 2019

Вы можете использовать:

dfs = []
for i in df.groupby('Animal'):
    dfs.append(i[1])

print(dfs[0])

   Animal  Max Speed
0  Falcon      380.0
1  Falcon      370.0

print(dfs[1])
   Animal  Max Speed
2  Parrot       24.0
3  Parrot       26.0
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...