2016-12-06 19 views
3

これを見つけようとしましたが、時間がかかりました。Python - datetimeカラムを秒に変換

私は日/時間/分など(timedelta)を含む日付列(「時間」と呼ばれます)を持っています。私は自分のデータフレームに新しい列を作成しました。そして、「時間」列を秒に変換し、それを各行の新しい列に入れたいと思います。

誰でもポインタを持っていますか?私がインターネット上で見つけることができるのは、列を変換する方法であり、新しい列を作成して別の列に変換することではありません。

ありがとうございます!

答えて

7

私はあなたがtotal_secondsが必要だと思う:

print (df['col'].dt.total_seconds()) 

サンプル:

df = pd.DataFrame({'date1':pd.date_range('2015-01-01', periods=3), 
        'date2':pd.date_range('2015-01-01 02:00:00', periods=3, freq='23H')}) 

print (df) 
     date1    date2 
0 2015-01-01 2015-01-01 02:00:00 
1 2015-01-02 2015-01-02 01:00:00 
2 2015-01-03 2015-01-03 00:00:00 

df['diff'] = df['date2'] - df['date1'] 
df['seconds'] = df['diff'].dt.total_seconds() 

print (df) 
     date1    date2  diff seconds 
0 2015-01-01 2015-01-01 02:00:00 02:00:00 7200.0 
1 2015-01-02 2015-01-02 01:00:00 01:00:00 3600.0 
2 2015-01-03 2015-01-03 00:00:00 00:00:00  0.0 

df['diff'] = df['date2'] - df['date1'] 
df['diff'] = df['diff'].dt.total_seconds() 

print (df) 
     date1    date2 diff 
0 2015-01-01 2015-01-01 02:00:00 7200.0 
1 2015-01-02 2015-01-02 01:00:00 3600.0 
2 2015-01-03 2015-01-03 00:00:00  0.0 

必要がintにキャストした場合:

df['diff'] = df['date2'] - df['date1'] 
df['diff'] = df['diff'].dt.total_seconds().astype(int) 

print (df) 
     date1    date2 diff 
0 2015-01-01 2015-01-01 02:00:00 7200 
1 2015-01-02 2015-01-02 01:00:00 3600 
2 2015-01-03 2015-01-03 00:00:00  0 
+0

はあなたにJezrealをありがとうございます。正確に私が必要としていたもの:)...私はグーグルで時間を過ごすので、なぜ私はすぐにここに向かないのかわかりません。私はそれが学習プロセスxの助けになると思うx) – ScoutEU

1

DataFrameの名前をdfとしましょう。

あなたは次のことを行う必要があります秒で新しい列を作成する場合:

df['newColumn'] = df['Time'].dt.total_seconds() 
+0

ありがとうマヌエル:) – ScoutEU

関連する問題