【问题标题】:Filling NaN with data based on condition根据条件用数据填充 NaN
【发布时间】:2018-08-31 03:01:10
【问题描述】:

我的代码是这样的:

if df['FLAG'] == 1:
    df['VAL'] = df['VAL'].fillna(median)
elif df['FLAG'] == 0:
    df['VAL'] = df['VAL'].fillna(0)

返回 - DataFrame 的真值是不明确的。使用 a.empty、a.bool()、a.item()、a.any() 或 a.all()。

我尝试过像面具一样,然后用 a.all() 应用它,但没有成功。我会非常感谢你的启发!

编辑:我在这里解决了我的问题 - Link

【问题讨论】:

    标签: python pandas


    【解决方案1】:

    这是一个元素操作,您可以对其进行矢量化。使用np.where 构建一个数组并将其传递给fillna

    df['VAL'] = df['VAL'].fillna(np.where(df['FLAG'], median, 0))
    

    【讨论】:

    • 嗯,stage,因为我收到类型错误,其中 value 参数必须是 scala、dict 或 Series,但你传递了一个 ndarray
    【解决方案2】:

    你可以这样做

     df.loc[df['VAL'].isna(),'Val']=df['FLAG']*median
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-06-29
      • 2022-01-22
      • 1970-01-01
      • 2021-05-09
      • 2014-11-05
      • 2019-07-04
      • 1970-01-01
      • 2021-01-20
      相关资源
      最近更新 更多