Я использую следующий код, чтобы попытаться создать фрейм данных из векторизатора Tf-Idf.Вывод векторизатора fit_transform представляет собой разреженную матрицу, поэтому я использую toarray () для преобразования в массив, а затем pandas.DataFrame для преобразования в dataframe.Я также извлекаю список функций, используя vectorizer.get_feature_names (), и использую его в качестве имен столбцов для фрейма данных.
vect = TfidfVectorizer()
X = vect.fit_transform(text_list)
word_list = vect.get_feature_names()
df1 = pd.DataFrame(X.toarray())
df1.to_excel("temp1.xlsx")
df2 = pd.DataFrame(X.toarray(), columns = word_list)
df2.to_excel("temp2.xlsx")
В случае 1 фрейм данных df1 экспортируется без проблем.Однако имена столбцов отсутствуют - помечены 0,1,2 ...
В случае 2 я пытаюсь включить имена столбцов, но экспорт выдает ошибку.
AttributeError: у объекта «DataFrame» нет атрибута «data»
Как ни странно, эта ошибка возникает только в некоторых случаях, а не во всех.Для разных текстовых данных эта проблема не возникает.Поэтому я думаю, что это может что-то сделать word_list и, возможно, форматирование.
После небольшого исследования я обнаружил, что одно из имен столбцов было «render», и это создает проблему.Как мне обойти это?Следующий код выдает ту же ошибку.df = pd.DataFrame ([1,2,3,4,5], columns = ["render"]), за которым следует df.to_excel ("temp.xlsx")
Может кто-нибудь объяснить, почему?