百分位函数Python

2024-04-18 23:33:31 发布

您现在位置:Python中文网/ 问答频道 /正文

有没有一种方便的方法可以根据数据框中其他列的值来计算列的百分位数。 i、 每种玩具价格的百分之十

我有一个方法,我可以得到我的答案,但它是非常冗长的,不会很好地工作在较大的数据集

import pandas as pd
import numpy as np

data = {'Toy': ['Truck', 'Truck', 'Truck', 'Barbie', 'Snake', 'Barbie'], 
    'Colour': ['Blue', 'Orange', 'Green', 'Pink','Green','Red'], 
    'Price': [4, 6, 8, 5, 9, 4]}
df = pd.DataFrame(data)
df

df2 = df.groupby(['Toy'])['Price'].agg([np.sum,np.mean, lambda x:np.percentile(x,q= 10)]).reset_index()
df2

df_result = pd.merge(df,df2, on= 'Toy', how='left')
df_result

输出-(lambda是感兴趣的变量) enter image description here


Tags: 数据方法lambdaimportdfdataasnp
1条回答
网友
1楼 · 发布于 2024-04-18 23:33:31

我想说你不需要让这变得如此复杂(创建另一个df,使用merge等)。在

你可以简单地做

res = df.groupby("Toy").Price.apply(np.percentile, 10)

并使用索引匹配结果

^{pr2}$

相关问题 更多 >