0
我正在閱讀Excel文件,並且在閱讀Excel文件時需要正確處理日期。通常情況下,列將被稀疏地填充日期,其餘將是空白。如果我閱讀它,它總是作爲object
dtype讀取。我想要正確地將它們更改爲datetime64[ns]
,同時不會錯誤地轉換實際的數字列。強制轉換日期Pandas中的列值爲空
d = {1: {'DateCol': '02/01/2014', 'NotDateCol': 12457}, 2: {'DateCol': np.nan, 'NotDateCol': 45677}}
df = pd.DataFrame.from_dict(d,orient='index')
In [96]: df.dtypes
Out[96]:
NotDateCol int64
DateCol object
dtype: object
好了,所以,如果你看看這個,你可以清楚地看到DateCol是一個日期:
NotDateCol DateCol
1 12457 02/01/2014
2 45677 NaN
現在我需要一些聰明的辦法日期列轉換爲日期,不知道頭名或類型事先
試圖只使用to_datetime強制轉換的整數日期,像這樣:
In [97]: for col in df.columns:
df[col] = pd.to_datetime(df[col])
....:
In [98]: df
Out[98]:
NotDateCol DateCol
1 1970-01-01 00:00:00.000012457 2014-02-01
2 1970-01-01 00:00:00.000045677 NaT
In [99]: df.dtypes
Out[99]:
NotDateCol datetime64[ns]
DateCol datetime64[ns]
dtype: object
是否有任何體面的智能方式來使這個工作,這將正確地挑出Datetime類列並將其轉換,而不是將數字轉換爲1970-01-01?
那麼你將如何確定一個日期嗎?與'/'模式? –
加載後,您是否嘗試過'df.convert_objects()'? – JoeCondron
@ColonelBeauvel,日期應該是明顯的。基本上是一個非整數,可以強制在Pandas中約會。幾乎就像我說的「熊貓使用你的正常日期強制,除了整數不是日期」 – user1610719