我想检查某些列(大约 5 或 6 个),如果所有列都为空,请将另一列has_nan从更改0为1。我知道如何过滤/屏蔽,但是在使用时loc我得到了可怕的SettingWithCopyWarning.这是一个小例子来说明,不完全相同,但它突出了问题:df = pd.DataFrame([np.random.randint(0,100,3), np.random.randint(0,100,3), np.random.randint(0,100,3), np.random.randint(0,100,3)], columns=['foo', 'bar', 'has_nan'])for i in ['use_1', 'use_2']: df[i] = 2 * ['5'] + 2 * [np.nan]df.loc[df.use_1.isna() & df.use_2.isna()]['has_nan'] = 'yes'
3 回答

弑天下
TA贡献1818条经验 获得超8个赞
你是这个意思?:
df['has_nan'][df['column_name'].isna()] = 0
df['has_nan'][~df['column_name'].isna()] = 1
添加回答
举报
0/150
提交
取消