python - 在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。不寻找百分比变化。
解决方案
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
推荐阅读
- python - 如何在多个断言语句之间清除捕获的标准输出/标准错误
- reactjs - 如何检索表单中提交的错误值?
- python-3.x - 我的 for 循环给了我超过 1 个值
- php - Apache 不会记录所有 php 错误
- karma-jasmine - 如何在业力测试运行器中修复“TypeError:this.form.get 不是函数”
- linux - Buildroot 不生成压缩内核映像
- javascript - 如何在另一个文件夹中设置 .next-folder?
- python - 遍历数据框中的行并根据其他列更改列的值
- angular - ngModelChange not triggering when change in ngModel
- uwp - UWP BluetoothLEAdvertisementWatcherTrigger not triggering with service uuid filter