如何对值进行分类,同时忽略满足 Dataframe 中特定条件的其他值?

How to bin values, while ignoring others that fulfill a certain criteria in a Dataframe?

我的 Dataframe 由非负值组成,但缺失值被编码为负值。所以我想在排除负值的同时对每一列进行分类。

到目前为止 qcut[df>0] 上将 Nan 放在以前有负值的地方,这不是我想要的,因为我想保留这些值(它们有意义)。

dat[i]=pd.qcut(dat[i][dat[i]>0], 10,labels = False, duplicates='drop') 

你想要的输入和输出对我来说仍然有点不清楚(将它们放入问题中可能会有所帮助)。但我认为您只需创建一个临时列并用原始列填充 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']