2017-05-22 12 views
1

datetime64[ns]の時刻部分だけを抽出して1900-01-01 00:32:59という形式の列を抽出し、合計秒に変換するにはどうすればよいですか?パンダの文字列データ型の継続時間を日付の時間フォーマットに変換

1900-01-01 00:00:00から正確に(32 * 60 + 59)秒であるこの例では、最終結果は1979秒になります。

+0

[Pandas; MM:SSで列を変換し、小数点以下を秒数で変換する](http://stackoverflow.com/questions/20472413/pandas-transform-column-with-mmss-decimals-into-number-of-seconds) – spies006

答えて

0

あなたはto_timedelta + strftime + total_seconds + astypeを使用することができます。

df = pd.DataFrame({"date": ["1900-01-01 00:32:59"]}) 
df['date'] = pd.to_datetime(df['date']) 
print (df) 
       date 
0 1900-01-01 00:32:59 

df['total'] = pd.to_timedelta(df['date'].dt.strftime("%H:%M:%S")) 
       .dt.total_seconds().astype(int) 
print (df) 
       date total 
0 1900-01-01 00:32:59 1979 

それともfloor + total_seconds + astype

df['total'] = (df['date'] - df['date'].dt.floor('D')).dt.total_seconds().astype(int) 
print (df) 
       date total 
0 1900-01-01 00:32:59 1979 

それともnormalize + total_seconds + astype

df['total'] = (df['date'] - df['date'].dt.normalize()).dt.total_seconds().astype(int) 
print (df) 
       date total 
0 1900-01-01 00:32:59 1979 
関連する問題