我在 Pandas 中遇到了一个奇怪的问题。我想用值 np.NaN
替换任何具有 np.Inf
的条目。但是,当我这样做时:
df[df == np.Inf] = np.NaN
我得到:
AttributeError: 'float' object has no attribute 'view'
具体产生错误的语句是:
df == np.Inf
我想知道问题是不是我在混合类型的 Dataframe 上运行上面的代码(参见下面的 dtypes
)。但如果是这样的话,我怎样才能自动进行这种替换呢?
In: df.dtypes
Out:
Year int64
Week int64
item_name object
item_uid object
Algorithm object
item Start float64
item 1/4 float64
item 1/2 float64
item 3/4 float64
item Complete float64
Daily Nr Impressions float64
date datetime64[ns]
Weekly rate float64
dtype: object
最佳答案
您可以使用 df.replace
替换您的 np.inf
值。
In [9]: import pandas as pd
In [10]: df = pd.DataFrame([1, 2, np.inf])
In [11]: df.replace(np.inf, np.nan)
Out[11]:
0
0 1
1 2
2 NaN
[3 rows x 1 columns]
关于python - 用 NaN 替换 Inf 导致 AttributeError,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23344498/