[英]GroupBy one column, custom operation on another column of grouped records in pandas
我想通過將值分組到另一列上來對列應用自定義操作。 按列分組以獲取計數,然后將所有分組記錄的另一列值除以此計數。
我的數據框架:
emp opp amount
0 a 1 10
1 b 1 10
2 c 2 30
3 b 2 30
4 d 2 30
我的情景:
最終輸出數據框架:
emp opp amount
0 a 1 5
1 b 1 5
2 c 2 10
3 b 2 10
4 d 2 10
什么是最好的可能
df['amount'] = df.groupby('opp')['amount'].transform(lambda g: g/g.size)
df
# emp opp amount
# 0 a 1 5
# 1 b 1 5
# 2 c 2 10
# 3 b 2 10
# 4 d 2 10
要么:
df['amount'] = df.groupby('opp')['amount'].apply(lambda g: g/g.size)
做類似的事情。
你可以嘗試這樣的事情:
df2 = df.groupby('opp').amount.count()
df.loc[:, 'calculated'] = df.apply( lambda row: \
row.amount / df2.ix[row.opp], axis=1)
df
產量:
emp opp amount calculated
0 a 1 10 5
1 b 1 10 5
2 c 2 30 10
3 b 2 30 10
4 d 2 30 10
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.