我有两个数据框,其中一个具有截至月底的度量标准。另一个包含整个月的指标。前一个(monthly_profit
)看起来像这样:
profit
yyyy_mm_dd
2018-01-01 8797234233.0
2018-02-01 3464234233.0
2018-03-01 5676234233.0
...
2019-10-01 4368234233.0
后者(monthly_employees
)看起来像这样:
employees
yyyy_mm_dd
2018-01-31 924358
2018-02-28 974652
2018-03-31 146975
...
2019-10-31 255589
我想获得每个员工的利润,所以我做到了:
profit_per_employee = (monthly_profit['profit']/monthly_employees['employees'])*100
这是我得到的输出:
yyyy_mm_dd
2018-01-01 NaN
2018-01-31 NaN
2018-02-01 NaN
2018-02-28 NaN
我该如何解决?一个数据框是该月的最后一天,另一个数据框是该月的第一天的原因是滚动数据与非滚动数据的结果。
monthly_profit
是对每日利润数据进行分组和汇总的结果:
monthly_profit = df.groupby(['yyyy_mm_dd'])[['proft']].sum()
monthly_profit = monthly_profit.resample('MS').sum()
monthly_employees
是一个总计,因此我需要获取每月最后一天的当前值:
monthly_employees = df.groupby(['yyyy_mm_dd'])[['employees']].sum()
monthly_employees = monthly_employees.groupby([monthly_employees.index.year, monthly_employees.index.month]).tail(1)
答案 0 :(得分:1)
在月末将MS
更改为M
以便同时匹配DatatimeIndex
:
monthly_profit = monthly_profit.resample('M').sum()