将 pandas.series 功能中的 -inf 值替换为 np.nan [重复]

问题描述 投票:0回答:2

我想将 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
2个回答
23
投票

它应该有效:

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

14
投票

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

请注意,默认情况下,

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
© www.soinside.com 2019 - 2024. All rights reserved.