2017-08-27 74 views
0

我試圖做一些Python日期解析和在分析我來到這個奇怪的錯誤說自由報辦公室鈣和Excel呈現不同的價值

time data 'nan' does not match format '%d/%m/%y' 

正如我在LibreOffice中檢查了我的的.csv文件一切看起來都很好。沒有值什麼如此。但是,當我在Excel中檢查它(Excel移動版本。因爲我不想支付),我看到不同的價值。在不同的編輯器被顯示爲值如下

自由報辦公室鈣 - 11/09/93

的Excel - ########

這裏是下面的截圖: enter image description here

我應該如何改變它的LibreOffice或Python,這樣就不會因爲NaN值,但實際值像對待他們應該。

我對excel和Libreoffice calc沒有太多的知識,所以任何解釋這個簡單問題的方法都是值得歡迎的。

這裏是Python代碼

import pandas as pd 
from datetime import datetime as dt 

loc = "C:/Data/" 
season1993_94 = pd.read_csv(loc + '1993-94.csv') 

def parse_date_type1(date): 
    if date == '': 
     return None 
    return dt.strptime(date, '%d/%m/%y').date() 

def parse_date_type2(date): 
    if date == '': 
     return None 
    return dt.strptime(date, '%d/%m/%Y').date() 

season1993_94.Date = season1993_94.Date.astype(str).apply(parse_date_type1) 

錯誤:

<ipython-input-13-46ff7e1afe94> in <module>() 
----> 1 season1993_94.Date = season1993_94.Date.astype(str).apply(parse_date_type1) 

ValueError: time data 'nan' does not match format '%d/%m/%y' 

PS:如果這個問題似乎是不適當的,因爲每個給定的情況下,請隨時進行編輯。

+1

放大塔B –

+0

@MichaelO的寬度。我已經上傳了新照片。我不能允許excel中列B的更改寬度。它不會讓我改變任何事情,因爲它是移動版本。但是,在fx字段的頂部,您可以看到突出顯示的單元格的值 – Cybercop

+1

此'#######'是因爲該值不適合單元格。至於Python,也許發佈一些代碼會有幫助。 –

回答

0

要查看發生了什麼,請使用文本編輯器(如Notepad ++)。使用Excel或Calc查看可能不會顯示問題;至少,問題中的圖像無法看到問題。

由以下三行組成的CSV文件發生錯誤。

Date,Place 
28/08/93,Southampton 
,Newcastle 

這裏是溶液,改編自How to convert string to datetime with nulls - python, pandas?

season1993_94['Date'] = pd.to_datetime(season1993_94['Date'], errors='coerce') 

其結果是:

>>> season1993_94 
     Date  Place 
0 1993-08-28 Southampton 
1  NaT Newcastle