Конвертировать объект Groupedby в DataFrame или серию без операции - PullRequest
0 голосов
/ 05 ноября 2018

Я новичок в Python, и у меня возникла проблема, которую я не могу решить.

Я сгруппировал свой DataFrame на основе двух столбцов. На некоторых из них я выполнил операцию типа .mean() или .std(), из которой результат становится серией. Это я могу использовать в моей формуле.

Однако мне также нужно, чтобы группы превратились в Series или DataFrame без операции. Когда я печатаю группу с:

print(object.apply(list))

результат - желаемая раскладка.

Однако как мне преобразовать эти объекты GroupedBy, чтобы они стали Series или DataFrame?

Я надеюсь, что кто-то может мне помочь.

Спасибо !!

Ответы [ 2 ]

0 голосов
/ 06 ноября 2018

К сожалению, вы не предоставили ни примеров данных, ни своего кода, поэтому я не уверен, правильно ли я понял вашу проблему.

Но, группируя, вы получаете объект, содержащий несколько фреймов данных, если хотите, «субдатафреймы», поэтому сам объект groupby больше не может быть показан как простой фрейм данных. Но вы можете перебирать его, получая имя и подкадры, которые вы можете просто напечатать.
Пример:

df = pd.DataFrame({'Col': ['blue', 'red', 'blue', 'red'], 'Val1': [12, 34, 56, 78],'Val2': [42, 53, 64, 75]})

    Col  Val1  Val2
0  blue    12    42
1   red    34    53
2  blue    56    64
3   red    78    75


for name, grp in df.groupby('Col'):
    print(name, grp, sep='\n', end='\n\n')
blue
    Col  Val1  Val2
0  blue    12    42
2  blue    56    64

red
   Col  Val1  Val2
1  red    34    53
3  red    78    75
0 голосов
/ 05 ноября 2018

Для создания кадра данных из группы:

# Simple count 
new_df = pandas.DataFrame({'NB' : df.groupby(['col_name1']).count()})

# groupby col1 and take the mean of col2  
new_df = pandas.DataFrame({'Mean' : df.groupby(['col_name1'])['col_name2'].mean()})
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...