'list' object has no attribute 'values'

运行fasttext形成文本的时候,出现了下面的问题:

# coding=utf-8
import pandas as pd
import numpy as np
import fasttext
from sklearn import metrics

with open('train_abstract.txt','w',encoding='utf-8') as f:
    for i in range(len(X_train.todense())):
        str1 = str(X_train.todense()[i])+"\t"+"__label__"+str(y_train.values[i])+'\n'
        f.write(str1)

with open('test_abstract.txt','w',encoding='utf-8') as f:
    for i in range(len(X_test)):
        str1 = str(X_test.values[i])+"\t"+"__label__"+str(y_test.values[i])+'\n'
        f.write(str1)

AttributeError                            Traceback (most recent call last)
<ipython-input-38-1b98cdb96387> in <module>()
      7 with open('train_abstract.txt','w',encoding='utf-8') as f:
      8     for i in range(len(X_train.todense())):
----> 9         str1 = str(X_train.todense()[i])+"\t"+"__label__"+str(y_train.values[i])+'\n'
     10         f.write(str1)
     11 

AttributeError: 'list' object has no attribute 'values'

请教大家如何解决这个问题。

list没有values属性,如果y_train已被转换成了一个列表,可用pd.Series再转换成一维数组结构,就可用values属性。

x=[1,2,3,5]
print(pd.Series(x).values)

y_train是列表,没有.values属性,改成y_train[i]试试

    str1 = str(X_train.todense()[i])+"\t"+"__label__"+str(y_train[i])+'\n'

如有帮助,请点击我的回答下方的【采纳该答案】按钮帮忙采纳下,谢谢!

img

dict(y_train)试试

把.values去掉,直接用y_train[i]取值就可以了

您好,我是有问必答小助手,您的问题已经有小伙伴帮您解答,感谢您对有问必答的支持与关注!
PS:问答VIP年卡 【限时加赠:IT技术图书免费领】,了解详情>>> https://vip.csdn.net/askvip?utm_source=1146287632