You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用sklearn PCA执行fit时出现'could not convert string to float'报错求助

PCA拟合报错:"could not convert string to float"

运行代码

import pandas as pd
from sklearn.decomposition import PCA
from sklearn.cluster import KMeans

data = pd.read_csv("tfidf_smogon.csv")
data.drop(['Categoría'], axis=1, inplace=True)
data.drop(data.columns[0], axis=1, inplace=True)
print(data)

pca = PCA(n_components=3)
pca.fit(data)
print('se alimentó')
x_pca = pca.transform(data)

miLista = ['PCA1', 'PCA2', 'PCA3', 'PCA4', 'PCA5', 'PCA6', 'PCA7', 'PCA8']
tablaPCA = pd.DataFrame(data=x_pca, columns=miLista)
print(tablaPCA)

#Ahora vamos a agrupar los comentarios en base a estos 3 PCA
km = KMeans(n_clusters=2, n_init=100)
lista_de_cluster = km.fit_predict(tablaPCA)
print(lista_de_cluster)

tablaPCA["Cluster"]=lista_de_cluster
print(tablaPCA)
tablaPCA.to_csv("PCA_smogon.csv")

问题描述

运行上述代码时,执行pca.fit(data)步骤反复出现**"could not convert string to float"**错误。原本期望通过PCA的fit和transform方法得到降维后的矩阵,尝试过使用标签函数、fit_transform方法均无法解决,特此求助。


问题原因

PCA是纯数值型算法,要求输入的特征矩阵必须全部由数值类型(int/float)组成。报错说明你的data数据框中仍存在未清理的字符串类型列。

解决方法

  1. 定位字符串列
    先检查数据类型,找出所有字符串列:
# 查看所有列的数据类型
print(data.dtypes)
# 直接筛选出字符串类型的列名
print(data.select_dtypes(include=['object']).columns)
  1. 清理/转换字符串列
  • 若字符串列是无关冗余数据,直接删除:
# 保留所有非字符串类型的列
data = data.select_dtypes(exclude=['object'])
  • 若字符串列是需要保留的分类变量,进行编码转换:
    • 标签编码(适用于有序分类,比如"低/中/高"):
      from sklearn.preprocessing import LabelEncoder
      le = LabelEncoder()
      for col in data.select_dtypes(include=['object']).columns:
          data[col] = le.fit_transform(data[col])
      
    • 独热编码(适用于无序分类,比如"苹果/香蕉/橙子"):
      data = pd.get_dummies(data, columns=data.select_dtypes(include=['object']).columns)
      
  1. 验证数据有效性
    处理完成后,再次确认所有列都是数值类型:
print(data.dtypes)
  1. 修正代码中的列名不匹配问题
    你设置PCA降维到3个维度,但创建tablaPCA时用了8个列名,这会导致维度不匹配报错,需修改列名列表:
miLista = ['PCA1', 'PCA2', 'PCA3']
tablaPCA = pd.DataFrame(data=x_pca, columns=miLista)

完成上述步骤后,重新运行代码即可正常执行PCA降维。


内容的提问来源于stack exchange,提问作者yoryi

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.19 14:40:19