首页 > 解决方案 > 如何解决数组不能包含 infs 或 nans

问题描述

fa = FactorAnalyzer(rotation = None,n_factors=5)
fa.fit(dat)
print(pd.DataFrame(fa.get_factor_variance(),index=['Variance','Proportional Var','Cumulative Var']))

我尝试了这段代码并得到了错误,因为数组不能包含空值或 infs。

我检查了空值和 inf,但没有显示空值或 inf。那么我该如何解决呢?

标签: python-3.x

解决方案


我认为您需要通过删除所有naninf

import pandas as pd

def dataset_cleaner(df):
    assert isinstance(df, pd.DataFrame), "df needs to be a pd.DataFrame"
    df.dropna(inplace=True)
    keep_indices = ~df.isin([np.nan, np.inf, -np.inf]).any(1)
    return df[keep_indices].astype(np.float64)

推荐阅读