web-dev-qa-db-ja.com

列をタイムスタンプに変換-Pandas Dataframe

Pandas以下の形式で2列に格納された日付値を持つデータフレームがあります。

Column 1: 04-APR-2018 11:04:29
Column 2: 2018040415203 

これをどのようにタイムスタンプに変換できますか?これらの両方の列のデータ型はオブジェクトです。

5
Taukheer

最初の形式では単に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]
9
Andy Hayden

これらも試すことができます。ファイルの読み取り中に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'])

これは、データフレームを作成したくない場合、または将来データフレームの他の属性と一緒に変換された列を参照したい場合に快適です。

0
Natty