【问题标题】:How to change the values of a column based on two conditions in Python如何根据 Python 中的两个条件更改列的值
【发布时间】:2017-08-31 03:50:48
【问题描述】:

我有一个数据集,其中包含游戏时间和事件时间。

  EVENT     GAME
  0:34      0:43
  NaN       0:23
  2:34      3:43
  NaN       4:50

我想将 GAME

 df['EVENT'][(df['GAME'] < '0:24') & (df['EVENT'] == 'NaN')] = df['GAME']

我试过这个,但它不起作用。对不起,如果它很明显。我是 Python 新手。

【问题讨论】:

    标签: python pandas dataframe


    【解决方案1】:

    您可以使用isnull检查NaN

    df.loc[(df['GAME'] < '0:24') & (df['EVENT'].isnull()), 'EVENT'] = df['GAME']
    print (df)
    
      EVENT  GAME
    0  0:34  0:43
    1  0:23  0:23
    2  2:34  3:43
    3   NaN  4:50
    

    mask 的另一个解决方案:

    mask = (df['GAME'] < '0:24') & (df['EVENT'].isnull())
    df['EVENT'] = df['EVENT'].mask(mask, df['GAME'])
    print (df)
      EVENT  GAME
    0  0:34  0:43
    1  0:23  0:23
    2  2:34  3:43
    3   NaN  4:50
    

    numpy.where:

    df['EVENT'] = np.where(mask, df['GAME'], df['EVENT'])
    print (df)
      EVENT  GAME
    0  0:34  0:43
    1  0:23  0:23
    2  2:34  3:43
    3   NaN  4:50
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-09-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-01-25
      • 2020-01-08
      相关资源
      最近更新 更多