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

问题描述 投票:0回答:2

我有一个由 1 和 0 组成的数据框,它充当元数据来描述主数据集某些特征的属性。作为数据探索的一部分,我在数据框上运行了以下代码,以将这些特征标签表达为二维图。

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

但是我在

fit
期间遇到以下错误:

array 不能包含 infs 或 nans

在检查数据框后,我发现整个数据集中没有 infs 或 nans。所以问题一定出在其他地方。

有人知道如何解决这个问题吗?

python pandas pca mca
2个回答
1
投票

显然这是一个已知的错误。问题在于数据框

tags_df
的值,因为
1.0
0.0
inf
算法期间产生
nan
mca

我尝试用

1.0
0.0
(布尔类型)更改那些
True
False
但没有成功。然而,字符串版本起到了作用,即
"True"
"False"
。所以下面一行解决了我的问题:

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

0
投票

我在这个错误上花了很多时间,幸运的是找到了解决方案。我使用“.astype('object')”将数据类型从“category”更改为“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
            )

希望对您有所帮助!

© www.soinside.com 2019 - 2024. All rights reserved.