2017-02-18 6 views
1

インデックス(uid)と現在の文字列である9個の変数を持つDataFrameがあります。インデックスを除くすべての列にto_datetimeを適用する

私はしかし、私はすべての列、このような一つ一つのためのコマンドを記述することなく、すべてのcolumnnsにこれをしたい、pd.to_datetimeで日時に変換するために管理:

initData['invited'] = pd.to_datetime(initData['invited'], dayfirst = True) 
initData['sign_up'] = pd.to_datetime(initData['sign_up'], dayfirst = True) 
initData['card_activated'] = pd.to_datetime(initData['card_activated'], dayfirst = True) 

は、どのように私はこの多くを行うことができますエレガント?私は.applyを試しましたが、データフレームインデックスをdatetimeに変換しようとするため、エラーが発生します。

答えて

1

使用apply

initData = initData.apply(pd.to_datetime, dayfirst=True) 
#same as 
#initData = initData.apply(lambda x: pd.to_datetime(x, dayfirst = True)) 

サンプル:

initData = pd.DataFrame({'A':['01-01-2017','02-01-2017','03-01-2017'], 
        'B':['05-01-2017','06-01-2017','07-01-2017'], 
        'C':['01-01-2017','02-01-2017','03-01-2017']}) 

print (initData) 
      A   B   C 
0 01-01-2017 05-01-2017 01-01-2017 
1 02-01-2017 06-01-2017 02-01-2017 
2 03-01-2017 07-01-2017 03-01-2017 

initData = initData.apply(pd.to_datetime, dayfirst=True) 

print (initData) 
      A   B   C 
0 2017-01-01 2017-01-05 2017-01-01 
1 2017-01-02 2017-01-06 2017-01-02 
2 2017-01-03 2017-01-07 2017-01-03 

print (initData.dtypes) 
A datetime64[ns] 
B datetime64[ns] 
C datetime64[ns] 
dtype: object 
+0

はありがとうございました!これは完全に機能しました。 –

関連する問題