Pandas以下の形式で2列に格納された日付値を持つデータフレームがあります。
Column 1: 04-APR-2018 11:04:29
Column 2: 2018040415203
これをどのようにタイムスタンプに変換できますか?これらの両方の列のデータ型はオブジェクトです。
最初の形式では単にto_datetimeを渡すことができますが、後者では明示的に日付形式を記述する必要があります( python docs の利用可能なディレクティブの表を参照してください):
In [21]: df
Out[21]:
col1 col2
0 04-APR-2018 11:04:29 2018040415203
In [22]: pd.to_datetime(df.col1)
Out[22]:
0 2018-04-04 11:04:29
Name: col1, dtype: datetime64[ns]
In [23]: pd.to_datetime(df.col2, format="%Y%m%d%H%M%S")
Out[23]:
0 2018-04-04 15:20:03
Name: col2, dtype: datetime64[ns]
これらも試すことができます。ファイルの読み取り中にinfer_datatime-format = Trueを渡してみてください。
上記の方法が失敗した場合、次を試してください
df2 = pd.to_datetime(df.col1)
または
df2 = pd.to_datetime(df['col1'])
df2
上記のメソッドはstrをdatetime形式にのみ変換し、df2で返すことに注意してください。要するに、df2にはstrの日時形式のみがあり、列名はありません。データフレームの他の列を保持し、変換された列にヘッダーを提供する場合は、次を試すことができます
df['col1_converetd'] = pd.to_datetime(df.col1)
または
df['col1_converetd'] = pd.to_datetime(df['col1'])
これは、データフレームを作成したくない場合、または将来データフレームの他の属性と一緒に変換された列を参照したい場合に快適です。