将两个数据帧相除得到NaN

时间:2019-10-31 13:41:42

标签: python-3.x pandas

我有两个数据框,其中一个具有截至月底的度量标准。另一个包含整个月的指标。前一个(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)

1 个答案:

答案 0 :(得分:1)

在月末将MS更改为M以便同时匹配DatatimeIndex

monthly_profit = monthly_profit.resample('M').sum()