2014-07-15 65 views
0

我使用pandas.DataFrame.to_excel()函數將一些從數據庫加載的文件寫入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中將各個國家/地區的數據顯示在其自己的標籤中。這通常是非常簡單的,但我有日期早於1900年的我的一些DataFrames的,這使得它不可能爲我寫到Excel,因爲它拋出一個錯誤:

ValueError: Year not supported by Excel: 1861.

寫作時我沒有問題這些文件作爲CSV,所以我很好奇,是否有一些方法可以創建一個具有多個由CSV表示的選項卡的Excel文件?如果沒有,是否有另一種解決此問題的方法?

回答

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) 
+0

謝謝你,這完美地工作。 – weskpga