2
가 나는 DF가 값 :팬더, 새로운 열 적용 GROUPBY을 만들 수는
그래서 인덱스 값이 같은 라벨 열을 기반으로 얻을 COL1과 Col2의에 GROUPBY하기 위해 노력하고있어Col1 Col2 Label
0 0 5345
1 0 7574
2 0 3445
0 1 2126
1 1 4653
2 1 9566
:
df_gb = df.groupby(['Col1','Col2'])['Label'].agg(['sum', 'count'])
df_gb['sum_count'] = df_gb['sum']/df_gb['count']
sum_count_total = df_gb['sum_count'].sum()
index = df_gb['sum_count']/10
Col2 Col1
0 0 2.996036
1 3.030063
2 3.038579
1 0 2.925314
1 2.951295
2 2.956083
2 0 2.875549
1 2.899254
2 2.905063
지금까지 모든 것이 예상대로입니다. 하지만 이제는이 'groupby df'를이 두 groupby 열을 기반으로하는 원래 'df'에 할당하려고합니다. 하나의 열만 있다면 map() 함수로 작동하지만 두 개의 열 순서에 따라 인덱스 값을 할당하고 싶지는 않습니다.
df_index = df.copy()
df_index['index'] = df.groupby([]).apply(index)
TypeError: 'Series' objects are mutable, thus they cannot be hashed
agg() 및 transform()으로 시도했지만 성공하지 못했습니다. 어떤 아이디어를 진행할 것인가?
미리 감사드립니다. Hristo.
조인이 완벽하게 작동합니다. GroupBy.transform()으로 시도해 볼 것입니다. 감사합니다 milion mate! :) –
예, 두 번째 솔루션은 빠릅니다. 천만에요! – jezrael
둘째로'df.groupby ([ 'Col1', 'Col2']) [ '레이블']. 변형 ('평균')/10' 일 수 있습니까? – Zero