Я использую groupby и agg для суммирования групп строк фрейма данных.
Я резюмирую каждую группу с точки зрения ее count и size:
>>> import pandas as pd
>>> df = pd.DataFrame([
[ 1, 2, 3 ],
[ 2, 3, 1 ],
[ 3, 2, 1 ],
[ 2, 1, 3 ],
[ 1, 3, 2 ],
[ 3, 3, 3 ] ],
columns=['A','B','C'] )
>>> gbB = df.groupby('B',as_index=False)
>>> Cagg = gbB.C.agg(['count','size'])
B count size
0 1 1 1
1 2 2 2
2 3 3 3
Результат выглядит как фрейм данных со столбцами для
группирующая переменная B и для сводок count и size:
>>> Cagg.columns
Index(['B', 'count', 'size'], dtype='object')
Однако я не могу получить доступ к каждому столбцу count и size.
для дальнейших манипуляций в виде серии или путем конвертации to_list:
>>> Cagg.count
<bound method DataFrame.count of B count size
0 1 1 1
1 2 2 2
2 3 3 3>
>>> Cagg.size
9
Могу ли я получить доступ к отдельным данным в виде столбцов с заголовками count
и size?






Не используйте атрибуты для доступа к столбцам, это противоречит существующим методам/свойствам.
Используйте индексацию с использованием квадратных скобок:
Cagg['count']
# 0 1
# 1 2
# 2 3
# Name: count, dtype: int64
Cagg['size']
# 0 1
# 1 2
# 2 3
# Name: size, dtype: int64
Да! Здесь я читаю повсюду, чтобы стать компетентным, и я читал о подводных камнях использования атрибутов вместо оператора
[]. Я думаю, это действительно не осознается, пока ты не укусишь это. Спасибо!