Skip to main content
 首页 » 编程设计

python之用 NaN 替换 Inf 导致 AttributeError

2025年05月04日10jackei

我在 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]