Jac*_*iel 3 python apply pandas
我想通过将另一列上的值分组来对一列应用自定义操作。按列分组以获取计数,然后将所有分组记录的另一个列值除以该计数。
我的数据框:
emp opp amount
0 a 1 10
1 b 1 10
2 c 2 30
3 b 2 30
4 d 2 30
Run Code Online (Sandbox Code Playgroud)
我的情况:
最终输出数据帧:
emp opp amount
0 a 1 5
1 b 1 5
2 c 2 10
3 b 2 10
4 d 2 10
Run Code Online (Sandbox Code Playgroud)
最好的办法是什么
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
Run Code Online (Sandbox Code Playgroud)
要么:
df['amount'] = df.groupby('opp')['amount'].apply(lambda g: g/g.size)
Run Code Online (Sandbox Code Playgroud)
做类似的事情。
| 归档时间: |
|
| 查看次数: |
849 次 |
| 最近记录: |