2016-08-29 106 views
1

我有一個Pandas數據框,其中包含日期作爲字符串的列(類似於SQL的格式)。但是,許多單元格包含None值。我試圖使用to_datetime將這些列轉換爲Pandas日期,併爲包含None值的單元格設置「默認」值。下面的示例代碼:熊貓:將默認日期時間設置爲None值

import pandas as pd 

>>> d = {'a': [1,2,3], 
     'd1': ['2016-01-01','2015-10-02',None], 
     'd2': [None,'2016-04-03',None]} 
>>> df = pd.DataFrame(d) 
>>> print df 
    a   d1   d2 
0 1 2016-01-01  None 
1 2 2015-10-02 2016-04-03 
2 3  None  None 


>>> date_cols = ['d1','d2'] 
>>> df[date_cols] = df[date_cols].apply(pd.to_datetime) 
>>> print df 
    a   d1   d2 
0 1 2016-01-01  NaT 
1 2 2015-10-02 2016-04-03 
2 3  NaT  NaT 

這是很簡單的有效的字符串轉換爲日期,我只是想用default_date更換NaT。這是想要我的最後數據幀的樣子:

>>> default_date = '2015-01-01' 
>>> print df 
    a   d1   d2 
0 1 2016-01-01 2015-01-01 
1 2 2015-10-02 2016-04-03 
2 3 2015-01-01 2015-01-01 
+1

調用'fillna'末不起作用? – IanS

回答

2

使用fillna

df[date_cols] = df[date_cols].fillna(pd.to_datetime('2015-01-01')) 
df 

enter image description here

相關問題