首页 > 解决方案 > 在python中计算生长因子

问题描述

我有以下数据框

Date           Country  Sales
01/02/20        France   1000
01/02/20        Germany  1000
02/02/20        France   2000
02/02/20        Germany  3000
03/02/20        France   4500
03/02/20        Germany  5000

我想按国家/地区计算每天的增长因子。例如,德国在 2020 年 2 月 2 日 = 3000/1000 和 2020 年 3 月 2 日的增长因子应该是 5000/3000。不寻找百分比变化。

标签: pythongroup-by

解决方案


df = pd.DataFrame([
['01/02/20',        'France '  ,1000],
['01/02/20',        'Germany'  ,1000],
['02/02/20',        'France '  ,2000],
['02/02/20',        'Germany'  ,3000],
['03/02/20',        'France '  ,4500],
['03/02/20',        'Germany'  ,5000]
], columns=['Date', 'Country', 'Sales'])
df['Diff'] = df.groupby(['Country']).diff()
df['Growth'] = df.eval('Sales/(Sales - Diff)')
print(df)

另一种选择如上所述。

       Date  Country  Sales    Diff    Growth
0  01/02/20  France    1000     NaN       NaN
1  01/02/20  Germany   1000     NaN       NaN
2  02/02/20  France    2000  1000.0  2.000000
3  02/02/20  Germany   3000  2000.0  3.000000
4  03/02/20  France    4500  2500.0  2.250000
5  03/02/20  Germany   5000  2000.0  1.666667

推荐阅读