2024-03-29 10:58:06 发布
网友
我有三根柱子。Product Id,Price,Group(值A,B,C,D)
Product Id
Price
Group
我想得到每个组的价格百分比,我正在运行以下代码。
for group, price in df.groupby(['group']): df['percentile'] = np.percentile(df['price'],60)
列百分比对于每个组只有一个值3.44。 每组的期望值为2.12, 3.43, 3.65, 4.76. 8.99。
2.12, 3.43, 3.65, 4.76. 8.99
这里出什么事了,请告诉我。
我认为您可以在循环中使用的不是列DataFramedf,而是列price的组price:
DataFrame
df
price
import pandas as pd import numpy as np np.random.seed(1) df = pd.DataFrame(np.random.randint(10, size=(5,3))) df.columns = ['Product Id','group','price'] print df Product Id group price 0 5 8 9 1 5 0 0 2 1 7 6 3 9 2 4 4 5 2 4 for group, price in df.groupby(['group']): print np.percentile(df['price'],60) 4.8 4.8 4.8 4.8 group for group, price in df.groupby(['group']): print np.percentile(price['price'],60) 0.0 4.0 6.0 9.0
另一个^{}的解决方案是输出Serie:
Serie
print df.groupby(['group'])['price'].apply(lambda x: np.percentile(x,60)) group 0 0.0 2 4.0 7 6.0 8 9.0 Name: price, dtype: float64
带^{}的解决方案:
print df.groupby(['group'])['price'].quantile(.6) group 0 0.0 2 4.0 7 6.0 8 9.0 Name: price, dtype: float64
按注释编辑:
如果需要新列,请使用^{},docs:
>>> np.random.seed(1) >>> df = pd.DataFrame(np.random.randint(10,size=(20,3))) >>> df.columns = ['Product Id','group','price'] >>> df Product Id group price 0 5 8 9 1 5 0 0 2 1 7 6 3 9 2 4 4 5 2 4 5 2 4 7 6 7 9 1 7 7 0 6 8 9 9 7 9 6 9 1 10 0 1 8 11 8 3 9 12 8 7 3 13 6 5 1 14 9 3 4 15 8 1 4 16 0 3 9 17 2 0 4 18 9 2 7 19 7 9 8 >>> df['percentil'] = df.groupby(['group'])['price'].transform(lambda x: x.quantile(.6))
>>> df Product Id group price percentil 0 5 8 9 9.0 1 5 0 0 4.4 2 1 7 6 4.8 3 9 2 4 4.6 4 5 2 4 4.6 5 2 4 7 7.0 6 7 9 1 5.8 7 7 0 6 4.4 8 9 9 7 5.8 9 6 9 1 5.8 10 0 1 8 6.4 11 8 3 9 9.0 12 8 7 3 4.8 13 6 5 1 1.0 14 9 3 4 9.0 15 8 1 4 6.4 16 0 3 9 9.0 17 2 0 4 4.4 18 9 2 7 4.6 19 7 9 8 5.8
你可以试试熊猫
df[['group', 'price']].groupby('group').quantile(.6)
给定分位数在请求轴上的返回值,la numpy.百分位数。
我认为您可以在循环中使用的不是列
DataFrame
df
,而是列price
的组price
:另一个^{} 的解决方案是输出
Serie
:带^{} 的解决方案:
按注释编辑:
如果需要新列,请使用^{} ,docs:
你可以试试熊猫
给定分位数在请求轴上的返回值,la numpy.百分位数。
相关问题 更多 >
编程相关推荐