假設我有一個資料框
import pandas as pd
df = pd.DataFrame({'group':['A','A','B','B','C','C'],'score':[1,2,3,4,5,6]})
首先,比如說,我想計算各組的分數總和。我通常會
def group_func(x):
d = {}
d['sum_scores'] = x['score'].sum()
return pd.Series(d)
df.groupby('group').apply(group_func).reset_index()
現在假設我要修改group_func,但這種修改要求我知道當前輸入的組標識x。我在函式的定義內嘗試過x['group'],但都沒有奏效。x[group].iloc[0]
函式有沒有辦法
group_func(x)知道當前輸入的定義坐標x?
在這個玩具示例中,比如說,我只想得到:
pd.DataFrame({'group':['A','B','C'],'sum_scores':[3,7,11],'name_of_group':['A','B','C']})
顯然最后一列只是重復第一列。我想知道如何使用類似group_func(x). 比如:當group_func處理x對應于組“A”的 并為 生成值 3 時sum_scores,如何在 的本地范圍內提取當前身份“A” group_func?
uj5u.com熱心網友回復:
只需添加.name
def group_func(x):
d = {}
d['sum_scores'] = x['score'].sum()
d['group_name'] = x.name # d['group_name'] = x['group'].iloc[0]
return pd.Series(d)
df.groupby('group').apply(group_func)
Out[63]:
sum_scores group_name
group
A 3 A
B 7 B
C 11 C
您的代碼修復請參閱有關添加標記的行''
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/477609.html
標籤:python-3.x 熊猫 数据框 熊猫-groupby
下一篇:資料框列上的連接值,不包括NaN
