在 Python 中将 Pandas 系列的日期时间转换为字符串

Vaibhav Vaibhav 2022年5月16日
在 Python 中将 Pandas 系列的日期时间转换为字符串

Pandas Series 是一个一维数组,可以保存任何数据类型和标签。假设你有一个 Pandas 系列的 datetime 对象。我们可以使用 strftime() 函数和一些格式代码将 datatime 对象转换为其等效的字符串。但是要转换 pandas 系列的 datetime 对象,要遵循的方法有点不同。本文将讨论我们如何进行这样的转换。

将 Pandas 系列的 datetime 对象转换为它们的等效字符串

参考以下代码。它首先创建 pandas 系列 datetime 对象,然后将它们转换为 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 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.

LinkedIn GitHub