Python 如果A列中的单元格为空,则修改B列中的单元格
我在A列中有空(nan)值,当A列中同一行的单元格为空时,我希望将0分配给B列中的单元格 列B已创建为以下lambda表达式:Python 如果A列中的单元格为空,则修改B列中的单元格,python,python-3.x,pandas,dataframe,lambda,Python,Python 3.x,Pandas,Dataframe,Lambda,我在A列中有空(nan)值,当A列中同一行的单元格为空时,我希望将0分配给B列中的单元格 列B已创建为以下lambda表达式: df['col_B'] = df.apply(lambda x: x.col_A in x.col_C, axis=1) 我试图修改它,但它不工作,从我的阅读,它是不建议 所以我尝试了一个经典循环,它没有显示错误,但它没有修改B列中的单元格: for index, row in df.iterrows(): if row['col_A'] is None:
df['col_B'] = df.apply(lambda x: x.col_A in x.col_C, axis=1)
我试图修改它,但它不工作,从我的阅读,它是不建议
所以我尝试了一个经典循环,它没有显示错误,但它没有修改B列中的单元格:
for index, row in df.iterrows():
if row['col_A'] is None:
df.at[index, 'col_B'] = 0
我的空值显示为“nan”(不是“None”或“nan”),因此我甚至不确定Python是否认为它们是真正的空值
你有什么建议?你应该这样做。也就是说,对于条件赋值,通过布尔级数有几种选择
您可以使用:
或:
或:
如果空值是字符串,请确保先替换它们;例如:
df['col_A'] = df['col_A'].replace('Nan', np.nan)
可能重复的
df['col_B'] = df['col_B'].mask(df['col_A'].isnull(), 0)
df['col_B'] = np.where(df['col_A'].isnull(), 0, df['col_B'])
df['col_A'] = df['col_A'].replace('Nan', np.nan)