【问题标题】:Data Frame to Excel - AttributeError: 'Series' object has no attribute 'columns'数据框到 Excel - AttributeError:“系列”对象没有属性“列”
【发布时间】:2020-09-30 12:42:25
【问题描述】:

我正在尝试将数据框写入 Excel 文件。这在过去对我有用,但这次,它给了我一个AttributeError

守则

我有一个名为 data 的数据框,如下所示:

我把它放到这段代码中:

# To find tf-idf values
textVal = data.text.values.astype('str')
vectorizer = TfidfVectorizer()
vectorizer.fit(textVal)
X = vectorizer.transform (textVal).toarray()
names = vectorizer.get_feature_names()
tfidf_dataframe = pd.DataFrame(X, columns = names)

# To print TF-IDF
writer = pd.ExcelWriter('tfidf_test.xlsx', engine='xlsxwriter')
tfidf_dataframe.to_excel(writer)
writer.save()
print("complete")

tfidf_dataframe 看起来像这样:

错误日志

---------------------------------------------------------------------------
AttributeError                            Traceback (most recent call last)
<ipython-input-22-9ebe0a5d13a5> in <module>
     13 
     14 # To print TF-IDF
---> 15 tfidf_dataframe.to_excel(writer)
     16 
     17 # To print sentiment analysis

c:\users\matay\appdata\local\programs\python\python38\lib\site-packages\pandas\core\generic.py in to_excel(self, excel_writer, sheet_name, na_rep, float_format, columns, header, index, index_label, startrow, startcol, engine, merge_cells, encoding, inf_rep, verbose, freeze_panes)
   2162         from pandas.io.formats.excel import ExcelFormatter
   2163 
-> 2164         formatter = ExcelFormatter(
   2165             df,
   2166             na_rep=na_rep,

c:\users\matay\appdata\local\programs\python\python38\lib\site-packages\pandas\io\formats\excel.py in __init__(self, df, na_rep, float_format, cols, header, index, index_label, merge_cells, inf_rep, style_converter)
    403             self.df = df.reindex(columns=cols)
    404 
--> 405         self.columns = self.df.columns
    406         self.float_format = float_format
    407         self.index = index

c:\users\matay\appdata\local\programs\python\python38\lib\site-packages\pandas\core\generic.py in __getattr__(self, name)
   5268             or name in self._accessors
   5269         ):
-> 5270             return object.__getattribute__(self, name)
   5271         else:
   5272             if self._info_axis._can_hold_identifiers_and_holds_name(name):

AttributeError: 'Series' object has no attribute 'columns'

关于我为什么会收到此错误消息的任何想法?

【问题讨论】:

    标签: python dataframe attributeerror pandas.excelwriter


    【解决方案1】:

    你确定你是从你正在运行的东西中得到这个吗?您的回溯似乎暗示它不是。

         14 # To print TF-IDF
    ---> 15 tfidf_dataframe.to_excel(writer)
         16 
         17 # To print sentiment analysis
    
    # To print TF-IDF
    writer = pd.ExcelWriter('tfidf_test.xlsx', engine='xlsxwriter')
    tfidf_dataframe.to_excel(writer)
    writer.save()
    print("complete")
    

    我相信默认引擎已经是xlsxwriter,所以你也可以直接使用tfidf_dataframe.to_excel('tfidf_test.xlsx')

    我的一个预感可能是,如果此代码存在于一个模块中,那么您正在积极开发它并且您没有将它重新导入到您的 Jupyter 环境中。

    如果是这样,请尝试:

    import importlib
    importlib.reload(module)
    

    其中 module 是代码所在模块的名称。

    【讨论】:

    • 感谢您的快速回复!我不太确定模块是什么。不过,我在 Jupyter 工作。如何确定它是否在模块中?
    • 更新:我决定重新启动 Jupyter,现在我收到了一个新错误:AttributeError: 'DataFrame' object has no attribute 'data'
    • 当您使用本地库或无序运行单元时,通常会发生这种情况。没有确切的代码很难说。看起来您正在尝试在某些时候执行某种df.data,这不是有效的属性。
    • 据我所知,我并没有打电话给df.data。你认为你可以看看我的代码here 看看我做错了什么吗?
    • 顺便说一句,非常感谢您的帮助。我在不知道任何人可以帮助我的情况下完成整个项目,因此非常感谢您抽出时间为我服务。
    猜你喜欢
    • 2020-11-11
    • 2019-04-22
    • 2019-07-26
    • 2020-04-04
    • 2019-09-16
    • 2017-12-12
    • 2018-05-25
    • 2019-07-07
    • 1970-01-01
    相关资源
    最近更新 更多