Python で Pandas Series の日時を文字列に変換する

Vaibhav Vaibhav 2022年1月23日
Python で Pandas Series の日時を文字列に変換する

Pandas Series は、ラベルとともに任意のデータ型を保持できる 1 次元配列です。datetime オブジェクトの Pandas Series があるとします。strftime() 関数といくつかのフォーマットコードを使用して、datatime オブジェクトを同等の文字列に変換できます。しかし、Pandas Series の datetime オブジェクトを変換するために、従うべきアプローチは少し異なります。この記事では、このような変換を実行する方法について説明します。

Pandas Series の datetime オブジェクトを同等の文字列に変換する

次のコードを参照してください。最初に pandas シリーズの日時オブジェクトを作成し、次にそれらを pandas シリーズの文字列オブジェクトに変換します。

import pandas as pd

dates = pd.to_datetime(
    pd.Series(["01/01/2021", "02/02/2021", "03/03/2021", "04/04/2021", "05/05/2021"]),
    format="%d/%m/%Y",
)
print("Before conversion")
print(dates)
print("After conversion")
dates = dates.dt.strftime("%Y-%m-%d")
print(dates)

出力:

Before conversion
0   2021-01-01
1   2021-02-02
2   2021-03-03
3   2021-04-04
4   2021-05-05
dtype: datetime64[ns]
After conversion
0    2021-01-01
1    2021-02-02
2    2021-03-03
3    2021-04-04
4    2021-05-05
dtype: object

出力の dtype 値に注意してください。前者はシリーズが datetime オブジェクトであることを示し、後者はシリーズが string オブジェクトであることを示します。

lambda 関数を使用して、オブジェクトのデータ型を変換することもできます。同じことについては、次のコードを参照してください。lambda 関数は、strftime() 関数を使用して変換を実行します。

import pandas as pd

dates = pd.to_datetime(
    pd.Series(["01/01/2021", "02/02/2021", "03/03/2021", "04/04/2021", "05/05/2021"]),
    format="%d/%m/%Y",
)
print("Before conversion")
print(dates)
print("After conversion")
dates = dates.apply(lambda x: x.strftime("%Y-%m-%d"))
print(dates)

出力:

Before conversion
0   2021-01-01
1   2021-02-02
2   2021-03-03
3   2021-04-04
4   2021-05-05
dtype: datetime64[ns]
After conversion
0    2021-01-01
1    2021-02-02
2    2021-03-03
3    2021-04-04
4    2021-05-05
dtype: object
著者: Vaibhav Vaibhav
Vaibhav Vaibhav avatar Vaibhav Vaibhav avatar

Vaibhav is an artificial intelligence and cloud computing stan. He likes to build end-to-end full-stack web and mobile applications. Besides computer science and technology, he loves playing cricket and badminton, going on bike rides, and doodling.