【问题标题】:fill NaN based on other columns value [duplicate]根据其他列值填充 NaN [重复]
【发布时间】:2021-12-20 17:24:18
【问题描述】:

我有一个这样的数据框:

NAME    YEAR    WFR MEAN
0   A   2017    20  NaN
1   B   2009    50  65.0
2   B   2011    80  65.0
3   B   2017    60  65.0
4   B   2018    90  NaN
5   C   2010    10  10.0
6   C   2018    30  10.0
7   D   2014    40  47.5
8   D   2015    55  47.5
9   D   2016    45  47.5

我想用 WFR 的值填充 NaN:如果 MEAN 是 NaN,那么 MEAN 等于 WFR 在那一年的值。 任何想法 ?谢谢

【问题讨论】:

    标签: python pandas dataframe


    【解决方案1】:

    试试这个:

    df['MEAN'] = df['MEAN'].fillna(df['WFR'])
    

    【讨论】:

      【解决方案2】:
      >>> mask = df.MEAN.isna()
      >>> df.loc[mask, "MEAN"] = df.loc[mask, "WFR"]
      >>> df
      
        NAME  YEAR  WFR  MEAN
      0    A  2017   20  20.0
      1    B  2009   50  65.0
      2    B  2011   80  65.0
      3    B  2017   60  65.0
      4    B  2018   90  90.0
      5    C  2010   10  10.0
      6    C  2018   30  10.0
      7    D  2014   40  47.5
      8    D  2015   55  47.5
      9    D  2016   45  47.5
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2020-11-14
        • 2021-08-31
        • 1970-01-01
        • 2022-10-07
        • 2021-06-19
        • 1970-01-01
        • 2019-11-21
        • 2021-01-24
        相关资源
        最近更新 更多