【发布时间】: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