This question already has an answer here:
Calculate percentile for every value in a column of dataframe
(1个答案)
3年前关闭。
我正在尝试计算数据框中每个数字的百分位数,并将其添加到名为“percentile”的新列中。
这是我的尝试:
该列未填充,结果为“NaN”。这应该很容易,但是我不确定哪里出了问题。
先谢谢您的帮助。
或者
输出:
(1个答案)
3年前关闭。
我正在尝试计算数据框中每个数字的百分位数,并将其添加到名为“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
关于python - 在Python Pandas Dataframe中计算百分位数,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/44611347/
10-12 23:23