我有一个由 1 和 0 组成的数据框,它充当元数据来描述主数据集某些特征的属性。作为数据探索的一部分,我在数据框上运行了以下代码,以将这些特征标签表达为二维图。
mca = prince.MCA()
mca_mtx = mca.fit(tags_df).transform(tags_df)
但是我在
fit
期间遇到以下错误:
array 不能包含 infs 或 nans
在检查数据框后,我发现整个数据集中没有 infs 或 nans。所以问题一定出在其他地方。
有人知道如何解决这个问题吗?
显然这是一个已知的错误。问题在于数据框
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)
我在这个错误上花了很多时间,幸运的是找到了解决方案。我使用“.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
)
希望对您有所帮助!