我尝试根据最小和最大列获取列值的百分位数
import pandas as pd
d = {'value': [20, 10, -5, ],
'min': [0, 10, -10,],
'max': [40, 20, 0]}
df = pd.DataFrame(data=d)
df
我获得一个新列“ percentile”,如下所示:
d = {'value': [20, 10, -5, ],
'min': [0, 10, -10,],
'max': [40, 20, 0],
'percentile':[50, 0, 50]}
df_res = pd.DataFrame(data=d)
df_res
谢谢
答案 0 :(得分:1)
您需要偏移最小值,以使其成为值和最大值之间的比率。你可以做:
df['percentile'] = (df['value'] - df['min']) / (df['max'] - df['min']) * 100