无法使用条件语句熊猫填充缺失值

时间:2021-07-31 06:06:06

标签: python pandas dataframe

我有一个 数据框,其中包含男性和女性的属性列。有一列 df['long_hair'] 带有 0=no1=yes。我想根据性别填充此列中的缺失值。这是我的代码。但是,问题是,就地不适用于条件语句列。那么我该怎么做呢?

df[df['Male']==1]['long_hair'].fillna(0,inplace=True)

此代码的意思是获取男性并用 0 填充缺失值(意味着他们没有长头发)。

1 个答案:

答案 0 :(得分:1)

您可以使用 pd.Series.where

分配绕过它 <块引用>

cond bool Series/DataFrame,类似数组,或可调用 当 cond 为 True 时,保持原始值。如果为False,则替换为其他对应的值。如果 cond 是可调用的,它是在 Series/DataFrame 上计算的,并且应该返回 boolean Series/DataFrame 或数组。可调用对象不得更改输入 Series/DataFrame(尽管 pandas 不会检查它)。

df.long_hair = df.long_hair.where((df.Male != 1) | df.long_hair.isnull())

当它不是男性或不为空时,这将保留值。