我有一个包含'Zip','Median‘的数据框,我想根据收入的分位数再加一列。
运行dfq = dfq.quantile([.1, .25, .50, .75, .9]),它返回以下内容,我认为这对于“收入中位数”是正确的。
Zip Median Income
0.10 60303.80 32176.90
0.25 60608.25 39896.00
0.50 60627.00 49755.00
0.75 60645.75 59829.25
0.90 60664.70 75555.30print(dfq['Median Income'].median()) 49755.0
所以.50和中位数是正确的。
我想做的是在收入中位数旁边分配一列分位数,但似乎不容易做到这一点?
我尝试了qcut函数。
dfq['quantile'] = pd.qcut(dfq['Median Income'], 5, labels=['10%','25%','50%','75%','90%'])但结果似乎与使用分位数函数不同,因为它将行等分(大约70行)
我是不是遗漏了什么,分位数计算对我的qcut是不是正确?
发布于 2020-08-20 03:41:24
我对qcut不太确定,但另一种选择是基于您找到的作为条件值的四分位数创建一个新列,如果您需要多次执行此操作,则可以使用函数来执行此操作。为了reference。
https://stackoverflow.com/questions/63492239
复制相似问题