我有一个 Dataframe
import pandas as pd
emp_df = pd.DataFrame({'empid':[101,101,101,101,102,102],
'salary':[1000,1000,1500,2000,3000,4000],
'month':['Feb','Mar','Apr','May','Apr','May'],
'year':[2020,2020,2021,2021,2019,2021]})
emp_df
原始数据如下所示:
我试图得到如下输出:
到目前为止,我得到的是:
方法-1:
t1 = emp_df.groupby(["empid", "year"]).agg(
Total_salary=("salary", "sum")
).reset_index()
t1
t1.pivot_table(columns='year')
方法2:
t3 = emp_df.groupby(['empid','year']).agg('salary').sum('total').reset_index()
t4 = gp.pivot_table(columns=['empid','year'])
pd.DataFrame(t4.to_records())
基本上我想得到两种类型的输出-
如上所示,每年(1月至12月)每个empid w.r.t的总金额(工资)。
另一个是计算每个empid w.r.t财政年度(4月至3月)的总额(工资)。
至少在第一步中,如何正确表示数据?这两个步骤在powerbi中都很简单,但我希望在笔记本上使用相同的逻辑来正确表示输出。
1条答案
按热度按时间vzgqcmou1#
首次使用
DataFrame.pivot_table
具有聚集函数sum
:对于第二个,首先为财政年度创建新列并传递给
pivot_table
: