我想要一个函数,如果区域列缺少值(如SQL中的NULL),则结果为目标“所需”变量中的“ A”。
我对在Python中使用None,isnull()和np.nan概念感到困惑
raw_data = {'area': ['S','W',np.nan,np.nan], 'wanted': [np.nan,np.nan,'A','A']}
df = pd.DataFrame(raw_data, columns = ['area','wanted'])
df
def my_func(x):
if (x) is None:
return 'A'
else:
return np.nan
df['wanted2'] = df['area'].apply(my_func)
df
答案 0 :(得分:3)
np.nan
不等于None
,infact NaN
isnot equal to NaN
as well(检查np.nan == None
),因此可以在if条件下使用pd.isna()
:
def my_func(x):
if pd.isna(x):
return 'A'
else:
return np.nan
df['wanted2'] = df['area'].apply(my_func)
但是您可以使用np.where
和series.isna()
(而不是apply
df['wanted2'] = np.where(df['area'].isna(),'A',np.nan)
答案 1 :(得分:0)