使用pandas写入Excel工作表时出现日期错误

时间:2014-07-15 16:12:24

标签: python excel pandas

我正在使用pandas.DataFrame.to_excel()函数将从数据库加载的一些文件写入Excel电子表格。使用的功能如下:

def country_reports(countries):
    writer = pd.ExcelWriter('country_reports.xlsx')
    for country in countries:
        df = report(country)
        df.to_excel(writer, country)
    writer.save()

report(country)方法只返回该国家/地区的DataFrame相关数据。我想为多个国家/地区运行此报告,然后将每个国家/地区的数据都显示在Excel中自己的选项卡中。这通常很简单,但我的某些DataFrame中的日期早于1900年,这使我无法写入Excel,因为它会抛出错误:

  

ValueError:Excel不支持年份:1861。

将这些文件写为CSV时我没有遇到任何问题,所以我很好奇是否有某种方法可以创建一个包含多个由CSV表示的标签的Excel文件?如果没有,是否还有其他解决方法?

1 个答案:

答案 0 :(得分:1)

您只需要在Excel中显示日期吗?如果是这样的话,您是否可以转换为字符串,就像这样。

df['date_col'] = df['date_col'].apply(lambda x: x.date().isoformat())

如果您确实需要在Excel中使用日期,最好将月/日/年分成不同的列,如下所示:

df['year'] = df['date_col'].apply(lambda x: x.year)
df['day'] = df['date_col'].apply(lambda x: x.day)
df['month'] = df['date_col'].apply(lambda x: x.month)