python dataframe 分位数_DataFrame:添加值为现有列的分位数/列组的列?

可以对现有列使用q=[0.25,0.5,0.75]的DataFrame.quantile来生成四分位列。

然后,您可以DataFrame.rank在那个四分位列上。

有关添加四分位列的示例,请参见以下内容:import pandas as pd

d = {'one' : pd.Series([40., 45., 50., 55, 60, 65], index=['val1', 'val2', 'val3', 'val4', 'val5', 'val6'])}

df = pd.DataFrame(d)

quantile_frame = df.quantile(q=[0.25, 0.5, 0.75])

quantile_ranks = []

for index, row in df.iterrows():

if (row['one'] <= quantile_frame.ix[0.25]['one']):

quantile_ranks.append(1)

elif (row['one'] > quantile_frame.ix[0.25]['one'] and row['one'] <= quantile_frame.ix[0.5]['one']):

quantile_ranks.append(2)

elif (row['one'] > quantile_frame.ix[0.5]['one'] and row['one'] <= quantile_frame.ix[0.75]['one']):

quantile_ranks.append(3)

else:

quantile_ranks.append(4)

df['quartile'] = quantile_ranks

注:也许有一种更为习惯的方法可以通过熊猫来实现这一点。。。但我不知道

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值