【Pandas】Pandasの文字列日時データを一括でDateTime型に変換する【to_datetime】

どうも、たぬきねこです!

Pandasでデータをいじっていると、文字列の日時データの列があって、そのデータをうまくDateTime型に変換して、データ抽出等を行いたい時があるとあると思います。

今回は文字列日時データを一括でDateTime型に変換する方法を紹介します。

環境

  • python 3.6
  • pandas 0.25.3

文字列日時データを一括する

では、さっそく変換してみます。

今回は以下のようなPandasのDataFrameを使います

print(data)
#=>                      日時
# 0   2020-06-24 17:00:14
# 1   2020-06-24 16:53:18
# 2   2020-06-24 16:42:05
# 3   2020-06-24 16:41:03
# 4   2020-06-24 16:36:02
# ..                  ...
# 425 2020-05-21 20:05:23
# 426 2020-05-21 18:44:36
# 427 2020-05-21 18:34:03
# 428 2020-05-18 17:24:14
# 429 2020-05-18 17:18:31

この日時の部分をDateTime型に変換していきます。

方法1

pandasのto_datetimeという関数を使えば簡単に変換できます。


data["日時"] = pd.to_datetime(data["日時"], format="%Y-%m-%d %H:%M:%S", errors='coerce')

方法2:力技

基本的にはPandasのapply関数を使っていきます。

では、変換します。

import datetime

def convert_str_to_date(str_date):
    date = datetime.datetime.strptime(str_date,"%Y-%m-%d %H:%M:%S")
    return date

data["日時"] = data["日時"].apply(convert_str_to_date)

applyを使うことで指定した関数(convert_str_to_date)を特定の列(日時)に適用することができます。

convert_str_to_dateでは、前回の記事で紹介しましたが、文字日時をDateTime型に変換しています。

以上です!簡単ですね!

おわりに

今回はpandasのDataFrameの文字列日時データに対して、どのように一括でDataFrame型に変換するかを紹介しました。

なんだかんだ自分が毎回調べてしまうので、記事として残せてよかったです。

参考文献

https://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.DataFrame.apply.html

タイトルとURLをコピーしました