2017-09-19 26 views
0

データフレームdfに日付とラベルの付いたフィールドがありますが、それを多くテストした後、文字列で日付形式ではないことが分かりました。python pandas:日付と時刻をdatetime形式の日付と時刻に分割する

Transaction_id | Date 
ABC    4/1/2016 9:13:58 PM 
CDE    10/3/2015 10:12:25 AM 
EFG    12/12/2017 3:02:45 PM 

は、私は日&時に日付の列を分割する必要があると私は彼らが日時書式になりたいです。私は長さが異なるので、正規表現でこれを行う方法を知らない。

出力:私は無意味日付データを処理するためにerrors='coerce'を置い

Transaction_id | Date     | Date2  | Time    
ABC    4/1/2016 9:13:58 PM  04/01/2016 21:13:58 
CDE    10/3/2015 10:12:25 AM  10/03/2016 10:12:25 
EFG    12/12/2017 3:02:45 PM  12/12/2017 15:02:45 
+1

参考までに、あなたの日付は一貫した形式ではありません。最初の行は12時間形式で、その他は24時間形式です。 – Zero

+1

sorry - typo; 15の代わりに3であったはずです。修正済み、ありがとうございます – jeangelj

答えて

4

注意。

date2 = pd.to_datetime(df.Date, errors='coerce') 

df.assign(Date2=date2.dt.date, Time=date2.dt.time) 

    Transaction_id     Date  Date2  Time 
0   ABC 4/1/2016 9:13:58 PM 2016-04-01 21:13:58 
1   CDE 10/3/2015 10:12:25 AM 2015-10-03 10:12:25 
2   EFG 12/12/2017 3:02:45 PM 2017-12-12 15:02:45 
+2

日付解析の問題、 '9:13:58 PM'は' 17:13:58'でしょうか? – Zero

+0

ありがとうございます... – piRSquared

+2

データが12時間24時間のタイムスタンプと矛盾しています。 – Zero