计算 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
我正在尝试计算数据框中每个数字的百分位数,并将其添加到名为 '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