【问题标题】:python - pandas dataframe error when export style object to csvpython - 将样式对象导出到csv时出现pandas数据框错误
【发布时间】:2017-12-01 01:02:14
【问题描述】:

我有一个数据框,每一列的格式都不同。我需要将其导出为 csv 或 dat 文件。但收到以下错误消息:

AttributeError: 'Styler' 对象没有属性 'to_csv'

如何解决这个问题?

import pandas as pd
import datetime

def time_formatter(data):
    return datetime.datetime.strptime(data, "%Y/%m/%d").date().strftime('%Y%m%d')

df = pd.DataFrame({'a':[1,2,3], 'b':['2017/01/01', '2017/01/02','2016/12/31'], 'c':['aaa', 'bbb', 'ccc'], 'd':[4,5,6]})

formatter = {'a':'{:4.2f}', 'b': time_formatter, 'd':'{:8.2f}'}

df = df.style.format(formatter)

df.to_csv('aaa.csv')

【问题讨论】:

  • 您包含的代码运行无误。您能否包括您的代码中引发错误的部分?但问题几乎可以肯定是您在 Styler 对象上调用 to_csv 而不是 DataFrame
  • 我已经编辑了我的帖子。
  • 您使用的是什么版本的 Python?您可以发布完整的回溯吗?这再次在我的系统上运行而没有错误(并输出 aaa.csv)
  • 我忘记添加“df = df.style.format(formatter)”。你没有错误的原因是 df 没有被改变。现在 df 是一个 Styler 对象,当导出到 csv 时它会给我们错误。你能再试一次吗?
  • 所以,我认为问题在于您正在覆盖数据框,因为样式应用程序应该就位。但是,我不确定 pandas 样式是否适用于 HTML 表示形式。

标签: python dataframe export-to-csv pandas-styles


【解决方案1】:

嗯,这是因为 CSV 是纯文本格式,并且这些文件不包含样式(格式)信息。这就是您收到AttributeError: 'Styler' object has no attribute 'to_csv' 的原因。您需要将其保存为 excel file 以使用不同的样式。

【讨论】:

    【解决方案2】:

    我也面临同样的问题,它通过流动解决了这个
    一开始导入

    pip install openpyxl
    

    然后将文件另存为

    df.to_excel("output.xlsx")
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2021-01-11
      • 1970-01-01
      • 1970-01-01
      • 2022-12-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多