我有一个熊猫数据框,上面写着
SKU ClosingBalance
S1 10
S2 np.nan
S3 0
S4 20
我想创建一个新的列,它将只显示具有正期末余额的SKU,其余应标记为np.nan,如下所示
SKU ClosingBalance SKU_CB
S1 10 S1
S2 np.nan np.nan
S3 0 np.nan
S4 20 S4
我试过了
conditions = [(df['ClosingBalance'] > 1)]
df['SKU_CB'] = np.select(conditions, df['SKU'], default=np.nan)
不起作用。我需要你的帮助
可以使用^{} 执行此操作:
或者,在使用^{} 时,第二个参数似乎有问题:
所以应该是这样
所以你的数据确实包含带有nan的数字数据,所以这就足够了-
pd.Series.mask
/where
或者
如果碰巧,您的数据有不完全是NaN的NaN值,那么这里有一个替代方法。使用
pd.to_numeric
,确定哪些值无效,并使用该值屏蔽SKU
pd.to_numeric
与pd.Series.mask
/where
或者
相关问题 更多 >
编程相关推荐