缺失值条件功能中的熊猫

时间:2020-04-05 13:24:33

标签: python pandas function missing-data

我想要一个函数,如果区域列缺少值(如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

2 个答案:

答案 0 :(得分:3)

np.nan不等于Noneinfact 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.whereseries.isna()(而不是apply

)对此进行矢量化
df['wanted2'] = np.where(df['area'].isna(),'A',np.nan)

答案 1 :(得分:0)

您可以使用fill.na

df['wanted2'] = df.area.fillna('A')

如果您的代码在np.nan中存在,则在代码中返回area,否则返回'A'。

相关问题