簡體   English   中英

保存日期時間單元格后,pandas無法正常讀取Excel文件

[英]pandas does not read a excel file fine after I've save a Datetime cell

我正在使用熊貓read_excel讀取文件

df0 = pd.read_excel(cfname,'Calendari', index_col=0, parse_cols='A:R',
            converters={'Categoria':str,'Fase':str, 'Grupo':str, 'Jornada':str,  
                               'Partido':str, 'IdPartido':str,'Leido':str})
df0.head()

輸出為:

Linea Categoria Fase Grupo Jornada Partido IdPartido Leido Data                 Hora   
    2       CCM    1     1       1      -1       NaN    No Jornada 1            NaN  
    3       CCM    1     1       1       0       NaN    No Data                 Hora    
    4       CCM    1     1       1       1 CCM110101    No 2017-09-30 00:00:00  19:30:00  
    5       CCM    1     1       1       2 CCM110102    No 2017-09-30 00:00:00  17:45:00  
    6       CCM    1     1       1       3 CCM110103    No 2017-09-27 00:00:00  18:00:00

我用openpyxl寫了一個新日期:在第6行中,我寫了2017-10-01

from openpyxl import load_workbook
wb = load_workbook(filename = cfname, keep_vba=True)
ws = wb.get_sheet_by_name('Calendari')
cell = ws['I6']
cell.value = datetime.strptime('01/10/2017', "%d/%m/%Y")
cell.number_format = 'dd/mm/yyyy'
wb.save(filename = cfname)

在Excel中,使用日期格式可以很好地保存日期​​。 但是,當我嘗試使用熊貓read_excel再次讀取文件時,數據已更改
Jornada Partido IdPartido的值變為NaN

Linea Categoria Fase Grupo Jornada Partido IdPartido Leido Data                 Hora   
    2       CCM    1     1     NaN     NaN       NaN    No Jornada 1            NaN  
    3       CCM    1     1     NaN     NaN       NaN    No Data                 Hora    
    4       CCM    1     1     NaN     NaN       NaN    No 2017-09-30 00:00:00  19:30:00  
    5       CCM    1     1     NaN     NaN       NaN    No 2017-09-30 00:00:00  17:45:00  
    6       CCM    1     1     NaN     NaN       NaN    No 2017-10-01 00:00:00  18:00:00

我不知道為什么。 我嘗試使用轉換器,沒有它們,則使用不同的日期格式,...
拜托,有人可以幫我嗎?

如果您已經使用openpyxl打開了文件,則可以使用內置實用程序將其轉換為Pandas。 http://openpyxl.readthedocs.io/en/default/pandas.html

由於這些值已經轉換為Python對象,因此轉換Pandas既快速又可靠。

我在做測試。 最終,我發現,如果我使用python程序(使用Excel程序)從python中打開並保存excel文件,當我嘗試再次使用pandas讀取文件時,並沒有給我錯誤。

我什么都不懂。 有些東西不能很好地與

wb.save(filename = cfname)

這是因為我的Excel文件是xlxm宏嗎? 我用以下方法打開它:

wb = load_workbook(filename = cfname, keep_vba=True)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM