首页 文章

在函数pandas.series中将-inf值替换为np.nan [duplicate]

提问于
浏览
1

这个问题在这里已有答案:

我想将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)

但它不起作用 . 任何想法如何取代这些 Value 观?

编辑:

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

作品

但:

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

不起作用 .

2 回答

  • 4

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

    请注意, 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
    
  • 1

    它应该工作:

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

相关问题