ValueError:无法在熊猫中将字符串转换为浮点数

Posted

技术标签:

【中文标题】ValueError:无法在熊猫中将字符串转换为浮点数【英文标题】:ValueError: could not convert string to float in panda 【发布时间】:2017-10-25 21:29:56 【问题描述】:

我的代码是:

 import pandas as pd
data = pd.read_table('train.tsv')

X=data.Phrase
Y=data.Sentiment
from sklearn import cross_validation
X_train,X_test,Y_train,Y_test=cross_validation.train_test_split(X,Y,test_size=0.2,random_state=0)
from sklearn.naive_bayes import MultinomialNB
clf = MultinomialNB()
clf.fit(X,Y)

我收到错误消息:ValueError: could not convert string to float:

我可以进行哪些更改以使我的代码正常工作?

【问题讨论】:

data.info() 是什么?所有数据都是数字? 不,它也由字符串组成。 X.phrase 有字符串数据。 Y.Sentiment 有数值数据。 【参考方案1】:

ValueError when using Multinomial Naive Bayes classifier

您可能应该按照上面的答案对数据进行预处理。

【讨论】:

【参考方案2】:

您不能将文本数据传递到 scikit-learn 的 MultinomialNB 中,如其 documentation 中所述。

scikit-learn 中的所有算法都不能直接处理文本数据。您需要进行一些预处理以获得所需的输出。您需要首先使用 bagging 或 tokenizing 等技术从文本数据中提取特征。看看这个link 以获得更好的理解。

您可能还想将NLTK 用于您的此类用例。

【讨论】:

以上是关于ValueError:无法在熊猫中将字符串转换为浮点数的主要内容,如果未能解决你的问题,请参考以下文章

ValueError:无法将字符串转换为浮点数:'GIAC'

Python:ValueError:无法将字符串转换为浮点数:'0'

ValueError:无法将字符串转换为浮点数:'n'

ValueError:无法将字符串转换为浮点数:'Bad'

ValueError:无法将字符串转换为浮点数:'2100 - 2850'

ValueError:无法将字符串转换为浮点数:'Mme'