Python 计算总价格,计算价格与数量数据的权重/权重,并按5个价格进行分组
我有这样一个数据帧:Python 计算总价格,计算价格与数量数据的权重/权重,并按5个价格进行分组,python,pandas,dataframe,Python,Pandas,Dataframe,我有这样一个数据帧: 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 2500
1 100.5 4100
2 101.0 2311
3 101.5 5066
4 102.0 9585
... ... ...
我想先得到一组价格,然后用步骤5对数量求和。
例如(使用随机值):
最后,根据单个数量和价格,我想给每个价格一个权重/加权平均值/分数,这样我可以对数据进行标准化,以知道哪个数量的权重最大。
例如:
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组。 重量-我使用了简单的公式 data.csv:
price volume
100.0 2500
103.5 4100
101.0 2311
105.5 5066
109.0 9585
代码:
输出:
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
价格下跌的部分100(任何>95的部分,是的,100将包括>95到100到100之间的总量
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