问题描述
我的数据框由非负值组成,但缺失值已编码为负值。 所以我想在排除负值的同时对每一列进行装箱。
到目前为止,在[df>0]
上的qcut
使Nan以前存在负值,而这并不是我想要的,因为我想保留这些值(它们具有含义)。
dat[i]=pd.qcut(dat[i][dat[i]>0], 10,labels = False, duplicates='drop')
1楼
对我来说,您所需的输入和输出仍然有些不清楚(将它们放入问题中可能会有所帮助)。 但是我认为您可以通过创建一个临时列并用原始列填充NaN值来实现您想要的。
从原始qcut
代码开始,但将其分配给新列:
dat['temp'] = pd.qcut(dat[i][dat[i]>0], 10, labels=False, duplicates='drop')
dat[i] = dat['temp'].fillna(df[i])
del df['temp']