У меня есть два кадра данных, один с метрикой по состоянию на последний день месяца. Другой содержит показатель, суммированный за весь месяц. Первый (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)