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
一段时间以来,我一直在寻找本地执行此操作的方法,但找不到解决方案。
我有一个大数据框,我想将 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