gpt4 book ai didi

python - 在 Pandas 中对元素进行分组时添加默认值

转载 作者:行者123 更新时间:2023-12-02 16:26:36 24 4
gpt4 key购买 nike

我正在使用 Pandas 数据框,我的数据有 EmployeeNo、Payable 和 Amount 作为列。

      EmpNo     Payable    Amount

01 Salary 20000
01 Salary 2000
01 Bonus 150

02 Salary 15000

03 Salary 10000
03 Bonus 50
03 Bonus 150

04 Salary 12000
04 Salary 3000

我想根据每位员工的薪水和奖金进行分组,并汇总每位员工的所有薪水和奖金。我写了这段代码:

df_2 = df.groupby([ 'EmpNo', 'Payable'])['Amount'].sum()

但它并没有显示每个员工的奖金。

如果未按以下格式将奖金分配给任何员工,我希望我的输出显示 0 作为默认值:

      EmpNo     Payable    Amount

01 Salary 22000
Bonus 150

02 Salary 15000
Bonus 0

03 Salary 10000
Bonus 200

04 Salary 15000
Bonus 0

最佳答案

添加Series.unstackDataFrame.stack :

df_2 = df.groupby([ 'EmpNo', 'Payable'])['Amount'].sum().unstack(fill_value=0).stack()
print (df_2)
EmpNo Payable
1 Bonus 150
Salary 22000
2 Bonus 0
Salary 15000
3 Bonus 200
Salary 10000
4 Bonus 0
Salary 15000
dtype: int64

如果需要转换为DataFrame 添加Series.reset_index :

df_2 = (df.groupby([ 'EmpNo', 'Payable'])['Amount']
.sum()
.unstack(fill_value=0)
.stack()
.reset_index(name='Amount'))
print (df_2)
EmpNo Payable Amount
0 1 Bonus 150
1 1 Salary 22000
2 2 Bonus 0
3 2 Salary 15000
4 3 Bonus 200
5 3 Salary 10000
6 4 Bonus 0
7 4 Salary 15000

关于python - 在 Pandas 中对元素进行分组时添加默认值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64348300/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com