【问题标题】:Replacing -inf values to np.nan in a feature pandas.series [duplicate]在功能 pandas.series 中将 -inf 值替换为 np.nan [重复]
【发布时间】:2018-09-23 15:23:21
【问题描述】:

我想将 pandas.series 功能(我的数据框的列)中的 -inf 值替换为 np.nan,但我做不到。

我试过了:

    df[feature] = df[feature].replace(-np.infty, np.nan)
    df[feature] = df[feature].replace(-np.inf, np.nan)
    df[feature] = df[feature].replace('-inf', np.nan)
    df[feature] = df[feature].replace(float('-inf'), np.nan)

但它不起作用。任何想法如何替换这些值?

编辑:

df[feature] =  df[feature].replace(-np.inf, np.nan)

作品

但是:

df =  df.replace(-np.inf, np.nan)

不起作用。

【问题讨论】:

    标签: python pandas numpy replace series


    【解决方案1】:

    它应该可以工作:

    df.replace([np.inf, -np.inf], np.nan,inplace=True)
    

    【讨论】:

      【解决方案2】:

      问题可能是您没有分配回原始系列。

      请注意,pd.Series.replace 默认情况下不是就地操作。下面的代码是一个最小的例子。

      df = pd.DataFrame({'feature': [1, 2, -np.inf, 3, 4]})
      
      df['feature'] = df['feature'].replace(-np.inf, np.nan)
      
      print(df)
      
      #    feature
      # 0      1.0
      # 1      2.0
      # 2      NaN
      # 3      3.0
      # 4      4.0
      

      【讨论】:

        猜你喜欢
        • 2019-09-13
        • 2014-01-29
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2021-06-29
        • 2021-12-31
        • 2017-07-30
        • 1970-01-01
        相关资源
        最近更新 更多