pandas MCA()返回“数组不能包含inf或nans”

pzfprimi  于 2023-04-19  发布在  其他
关注(0)|答案(2)|浏览(256)

我有一个由1和0组成的dataframe,它作为元数据来描述主数据集的一些特征的属性。作为数据探索的一部分,我在dataframe上运行了以下代码,以将这些特征标记表示为2D图。

mca = prince.MCA()
mca_mtx = mca.fit(tags_df).transform(tags_df)

但是我在fit期间得到以下错误:
数组不能包含inf或nans
在检查了数据框之后,我发现整个数据集中没有infs或nans。所以问题一定是别的什么。
有人知道怎么解决吗?

1qczuiv0

1qczuiv01#

显然它是一个known bug。问题在于 Dataframe tags_df的值,因为1.00.0mca算法中产生infnan
我尝试将1.00.0改为TrueFalse(bool类型),但没有成功。然而,字符串版本做到了这一点,即"True""False"。所以下面的行解决了我的问题:

tags_df.replace({0: "False", 1: "True"}, inplace = True)
wj8zmpe1

wj8zmpe12#

我花了很多时间在这个错误上,幸运的是找到了解决方案。我已经将dtype从“category”更改为“object”,使用“.astype('object')”。我还使用了以下代码:

mca = prince.MCA(
    n_components=3,
    n_iter=3,
    copy=True,
    check_input=True,
    engine='sklearn',
    random_state=42
) 
    mca = mca.fit(df_final_2)
    mca.plot(
       df_final_2,
       x_component=0,
       y_component=1
            )

希望有帮助!

相关问题