Pandas:当多列为空时在单元格中设置一个值

Pandas: Setting a value in a cell when multiple columns are empty

一段时间以来,我一直在寻找本地执行此操作的方法,但找不到解决方案。

我有一个大数据框,我想将 other_col 中的值设置为 'True' 用于列列表之一为空的所有行。

这适用于单个列 page_title:

df.loc[df['page_title'].isna(), ['other_col']] = ''

但在使用列表时不是

df.loc[df[['page_title','brand','name']].isna(), ['other_col']] = ''

关于如何在不使用 Numpy 或遍历所有行的情况下执行此操作的任何想法? 谢谢

这将允许您设置要确定哪些列是否存在 np.nan 并设置 True/False 指示器

data = {
    'Column1' : [1, 2, 3, np.nan],
    'Column2' : [1, 2, 3, 4],
    'Column3' : [1, 2, np.nan, 4]
}
df = pd.DataFrame(data)
df['other_col'] = np.where((df['Column1'].isna()) | (df['Column2'].isna()) | (df['Column3'].isna()), True, False)
df

也许这就是您要找的:

df = pd.DataFrame({
    'A' : ['1', '2', '3', np.nan], 
    'B': ['10', np.nan, np.nan, '40'], 
    'C' : ['test', 'test', 'test', 'test']})

df.loc[df[['A', 'B']].isna().any(1), ['C']] = 'value'

print(df)

结果:

     A    B      C
0    1   10   test
1    2  NaN  value
2    3  NaN  value
3  NaN   40  value