web-dev-qa-db-ja.com

pandas日時から整数のタイムスタンプに変換

pandasデータフレームpython整数型のtimeという名前の列があることを考慮して、それをdatetimeに変換できます。次の命令でフォーマットします。

df['time'] = pandas.to_datetime(df['time'], unit='s')

そのため、列には2019-01-15 13:25:43のようなエントリがあります。

文字列を整数のタイムスタンプ値に戻すコマンドは何ですか(1970-01-01 00:00:00からの経過秒数を表します)?

pandas.Timestampを確認しましたが、変換ユーティリティが見つからず、pandas.to_timedeltaを使用できませんでした。

この変換のためのユーティリティはありますか?

10
Francesco Boi

astype(int)を使用してintに型キャストして10**9で除算すると、UNIXエポックの開始までの秒数を取得できます。

import pandas as pd
df = pd.DataFrame({'time': [pd.to_datetime('2019-01-15 13:25:43')]})
df_unix_sec = pd.to_datetime(df['time']).astype(int)/ 10**9
print(df_unix_sec)
9
Always Sunny

_timedelta64_で.dt.total_seconds()を使用します。

_import pandas as pd
df = pd.DataFrame({'time': [pd.to_datetime('2019-01-15 13:25:43')]})

# pd.to_timedelta(df.time).dt.total_seconds() # Is deprecated
(df.time - pd.to_datetime('1970-01-01')).dt.total_seconds()
_

出力

_0    1.547559e+09
Name: time, dtype: float64
_
5
ALollz

最も簡単な方法は、.valueを使用することです

pd.to_datetime('1970-01-01').value
1