计算 Python Pandas 数据框中的百分位数

Calculating Percentile in Python Pandas Dataframe

我正在尝试计算数据框中每个数字的百分位数,并将其添加到名为 'percentile' 的新列中。

这是我的尝试:

import pandas as pd
from scipy import stats

data = {'symbol':'FB','date':['2012-05-18','2012-05-21','2012-05-22','2012-05-23'],'close':[38.23,34.03,31.00,32.00]}

df = pd.DataFrame(data)

close = df['close']

for i in df:
    df['percentile'] = stats.percentileofscore(close,df['close'])

该列未被填充,结果为 'NaN'。这应该相当容易,但我不确定我哪里出错了。

在此先感谢您的帮助。

df.close.apply(lambda x: stats.percentileofscore(df.close.sort_values(),x))

df.close.rank(pct=True)

输出:

0    1.00
1    0.75
2    0.25
3    0.50
Name: close, dtype: float64