AttributeError: 'float' object has no attribute 'lower'
AttributeError: 'float' object has no attribute 'lower'
我遇到了这个属性错误,如果出现在 tweet.The 流式推文中的浮点值必须小写和标记化,我就无法处理浮点值,所以我使用了拆分函数。
有人可以帮我解决这个问题吗,有任何解决方法或解决方案吗?
这是错误,我开始....
AttributeError Traceback (most recent call last)
<ipython-input-28-fa278f6c3171> in <module>()
1 stop_words = []
----> 2 negfeats = [(word_feats(x for x in p_test.SentimentText[f].lower().split() if x not in stop_words), 'neg') for f in l]
3 posfeats = [(word_feats(x for x in p_test.SentimentText[f].lower().split() if x not in stop_words), 'pos') for f in p]
4
5 trainfeats = negfeats+ posfeats
AttributeError: 'float' object has no attribute 'lower'
这是我的代码
p_test = pd.read_csv('TrainSA.csv')
stop_words = [ ]
def word_feats(words):
return dict([(word, True) for word in words])
l = [ ]
for f in range(len(p_test)):
if p_test.Sentiment[f] == 0:
l.append(f)
p = [ ]
for f in range(len(p_test)):
if p_test.Sentiment[f] == 1:
p.append(f)
negfeats = [(word_feats(x for x in p_test.SentimentText[f].lower().split() if x not in stop_words), 'neg') for f in l]
posfeats = [(word_feats(x for x in p_test.SentimentText[f].lower().split() if x not in stop_words), 'pos') for f in p]
trainfeats = negfeats+ posfeats
print len(trainfeats)
import random
random.shuffle(trainfeats)
print(len(trainfeats))
p_train = pd.read_csv('TrainSA.csv')
l_t = []
for f in range(len(p_train)):
if p_train.Sentiment[f] == 0:
l_t.append(f)
p_t = []
for f in range(len(p_train)):
if p_train.Sentiment[f] == 1:
p_t.append(f)
print len(l_t)
print len(p_t)
我尝试了很多方法,但仍然无法让他们使用 lower 和 split 功能。
我感觉您的问题根源在于 pd.read_csv('TrainSA.csv') 函数。虽然你没有 post 这个例程,但我认为它是 Pandas read_csv。此例程智能地将输入转换为 python 数据类型。但是,这意味着在您的情况下,某些值可以转换为浮点数。您可以通过为每一列指定您期望的数据类型来防止这种智能 (?) 行为。
谢谢@Dick Kniep。是的,它是 Pandas CSV reader。你的建议奏效了。
以下是 python 代码,它通过指定字段数据类型为我工作,
(在这种情况下,它的字符串)
p_test = pd.read_csv('TrainSA.csv')
p_test.SentimentText=p_test.SentimentText.astype(str)
我的数据集出现了类似的错误。设置 dtype
参数对我没有帮助。我必须准备我的数据集。问题出在 NaN
列值上。数据集部分:
Id,Category,Text
1,contract,"Some text with commas, and other "
2,contract,
所以我的解决方案:在 read_csv
之前,我添加了虚拟文本而不是空行:
Id,Category,Text
1,contract,"Some text with commas, and other "
2,contract,"NaN"
现在我的应用程序运行正常。
如果您使用的是数据框,请使用以下方法删除 NA:
df = df.dropna()
我遇到了这个属性错误,如果出现在 tweet.The 流式推文中的浮点值必须小写和标记化,我就无法处理浮点值,所以我使用了拆分函数。
有人可以帮我解决这个问题吗,有任何解决方法或解决方案吗?
这是错误,我开始....
AttributeError Traceback (most recent call last)
<ipython-input-28-fa278f6c3171> in <module>()
1 stop_words = []
----> 2 negfeats = [(word_feats(x for x in p_test.SentimentText[f].lower().split() if x not in stop_words), 'neg') for f in l]
3 posfeats = [(word_feats(x for x in p_test.SentimentText[f].lower().split() if x not in stop_words), 'pos') for f in p]
4
5 trainfeats = negfeats+ posfeats
AttributeError: 'float' object has no attribute 'lower'
这是我的代码
p_test = pd.read_csv('TrainSA.csv')
stop_words = [ ]
def word_feats(words):
return dict([(word, True) for word in words])
l = [ ]
for f in range(len(p_test)):
if p_test.Sentiment[f] == 0:
l.append(f)
p = [ ]
for f in range(len(p_test)):
if p_test.Sentiment[f] == 1:
p.append(f)
negfeats = [(word_feats(x for x in p_test.SentimentText[f].lower().split() if x not in stop_words), 'neg') for f in l]
posfeats = [(word_feats(x for x in p_test.SentimentText[f].lower().split() if x not in stop_words), 'pos') for f in p]
trainfeats = negfeats+ posfeats
print len(trainfeats)
import random
random.shuffle(trainfeats)
print(len(trainfeats))
p_train = pd.read_csv('TrainSA.csv')
l_t = []
for f in range(len(p_train)):
if p_train.Sentiment[f] == 0:
l_t.append(f)
p_t = []
for f in range(len(p_train)):
if p_train.Sentiment[f] == 1:
p_t.append(f)
print len(l_t)
print len(p_t)
我尝试了很多方法,但仍然无法让他们使用 lower 和 split 功能。
我感觉您的问题根源在于 pd.read_csv('TrainSA.csv') 函数。虽然你没有 post 这个例程,但我认为它是 Pandas read_csv。此例程智能地将输入转换为 python 数据类型。但是,这意味着在您的情况下,某些值可以转换为浮点数。您可以通过为每一列指定您期望的数据类型来防止这种智能 (?) 行为。
谢谢@Dick Kniep。是的,它是 Pandas CSV reader。你的建议奏效了。 以下是 python 代码,它通过指定字段数据类型为我工作, (在这种情况下,它的字符串)
p_test = pd.read_csv('TrainSA.csv')
p_test.SentimentText=p_test.SentimentText.astype(str)
我的数据集出现了类似的错误。设置 dtype
参数对我没有帮助。我必须准备我的数据集。问题出在 NaN
列值上。数据集部分:
Id,Category,Text
1,contract,"Some text with commas, and other "
2,contract,
所以我的解决方案:在 read_csv
之前,我添加了虚拟文本而不是空行:
Id,Category,Text
1,contract,"Some text with commas, and other "
2,contract,"NaN"
现在我的应用程序运行正常。
如果您使用的是数据框,请使用以下方法删除 NA:
df = df.dropna()