2016-08-29 50 views
1

日付を文字列として含む列を持つPandasデータフレームがSQL形式です。しかし、多くのセルにはNoneの値が含まれています。私はto_datetimeを使ってこれらの列をPandasの日付に変換しようとしていて、Noneの値を含むセルに「デフォルト」の値を設定しています。以下のコード例:Pandas: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_dateNaTを交換したいです。最後にfillna`は動作しません `呼び出し

>>> 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

:これは私が最後のデータフレームは次のようになりたいのですが何ですか? – IanS

答えて

2

使用fillna

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

enter image description here

関連する問題