2017-07-11 39 views
1

我想讀取具有一列中的日期值的Excel。但是它們有兩種不同的格式:熊貓讀excel與混合日期格式

03.07.2017 
03.07.2017 
30/06/2017 
30/06/2017 
30/06/2017 
03.07.2017 
03.07.2017 

07和06是月份數字。

我導入與Excel:

denik=pd.read_excel('obchodnidenik.xlsx',converters={'Vstup - datum':str}) 

但日期將被轉換不同。

我得到的已經切換日期/月兩個日期格式:

'30/06/2017' 
'2017-03-07 00:00:00' 

什麼是所有的值轉換成正確的日期時間的最佳方式?

+2

不解析,而日期閱讀,用'/'在字符串中替換'.',然後用'pd.to_datetime'? – Zero

+0

但解析是自動的 - 我甚至試圖強制「str」格式,但它沒有幫助。 – PeterL

+0

強制轉換器類型確實工作,你是否在正確的列上使用正確的語法https://stackoverflow.com/a/41117204? – Zero

回答

0

您可以讀取Excel的使用後Series.replace,然後將其轉換成正確的日期時間,並設置dayfirst = True正確月 例如:

n = ['03.07.2017','03.07.2017','30/06/2017','30/06/2017','30/06/2017','03.07.2017','03.07.2017'] 
df = pd.DataFrame(n) 
df[0]=df[0].replace('[/\/.]','-',regex=True) 
df[0] = pd.to_datetime(df[0],dayfirst=True) 

輸出:

 
0 2017-07-03 
1 2017-07-03 
2 2017-06-30 
3 2017-06-30 
4 2017-06-30 
5 2017-07-03 
6 2017-07-03 
+0

它工作先生? – Dark