我使用以下代码尝试从Tf-Idf矢量化器制作数据帧。矢量化器的fit_transform的输出是一个稀疏矩阵,因此我使用toarray()转换为数组,然后使用pandas.DataFrame转换为数据帧。我还使用vectorizer.get_feature_names()提取了功能列表,并将其用作数据框的列名。
awk '!/^[0-5][0-5]/' file.txt
在情况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”)
有人可以解释为什么吗?
答案 0 :(得分:0)
通过将列名称作为pandas.to_excel()的标题参数传递来解决,而不是将其作为列名称包含在数据框中。仍然不确定如何从根本上克服此问题,并使其考虑将“渲染”作为适当的列标题。
df2 = pd.DataFrame(X.toarray())
df2.to_excel("temp2.xlsx", headers = word_list)