我想将 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)
不起作用。
它应该有效:
df = df.replace([np.inf, -np.inf], np.nan)
问题可能是您没有分配回原始系列。
请注意,默认情况下,
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