Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/19.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如果A列中的单元格为空,则修改B列中的单元格_Python_Python 3.x_Pandas_Dataframe_Lambda - Fatal编程技术网

Python 如果A列中的单元格为空,则修改B列中的单元格

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:

我在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.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)