python - Pandas汇总价格并计算价格与数量数据的权重/权重,并按5个价格分组
问题描述
我有一个这样的数据框:
price volume
0 100.0 2500
1 100.5 4100
2 101.0 2311
3 101.5 5066
4 102.0 9585
... ... ...
我想首先获得一组价格,然后以 5 的步长对交易量求和。例如(使用随机值):
price volume
0 100.0 15000
1 105.0 12000
2 110.0 19000
3 115.0 30000
4 120.0 21000
... ... ...
最后,根据个人的交易量和价格,我想给每个价格一个权重/加权平均数/分数,这样我就可以标准化数据以了解哪个交易量的权重最大。例如:
price volume weight
0 100.0 15000 3
1 105.0 12000 2.5
2 110.0 19000 3.5
3 115.0 30000 5
4 120.0 21000 4
... ... ...
谁能帮我解决这个问题?
解决方案
我使用标准方法对价格进行四舍五入,因此 97.5 到 102.49 将在第 100 组中。重量 - 我使用了简单的公式,很明显。
数据.csv:
price volume
100.0 2500
103.5 4100
101.0 2311
105.5 5066
109.0 9585
代码:
import pandas as pd
import numpy as np
df = pd.read_csv('data.csv', delimiter='\s+')
print(df)
df['price_grp'] = np.around(df.price.values/5, decimals=0)*5
df['tot_vol'] = df.groupby('price_grp')['volume'].transform('sum')
df['weight'] = np.around(df['volume'] / df['tot_vol'], decimals=2)
print(df)
输出:
price volume
0 100.0 2500
1 103.5 4100
2 101.0 2311
3 105.5 5066
4 109.0 9585
price volume price_grp tot_vol weight
0 100.0 2500 100.0 4811 0.52
1 103.5 4100 105.0 9166 0.45
2 101.0 2311 100.0 4811 0.48
3 105.5 5066 105.0 9166 0.55
4 109.0 9585 110.0 9585 1.00
推荐阅读
- ios - Xcode UITesting LoginUser 重定向到 homeScreen
- javascript - Jquery Collapse 面板无法正常工作
- python - Python 为自定义类定义 []、len()、items() 和 keys() 运算符
- typescript - tsconfig.json 中的 --inlineSourceMap 或 --sourceMap
- javascript - 为什么正则表达式在 ie 中不起作用?
- java - 有没有办法将 java 方法声明为 kotlin 的中缀
- angularjs - PhpStorm:IDE 未正确评估 AngularJS ng-repeat microSyntax
- deep-learning - 如何在pycharm中禁用运行纪元的详细视图并使其显示有关运行纪元的更少细节?
- image - AutoHotKey 确定图像搜索位置
- python - Django 按类别 ID 显示子类别