当对时间序列数据进行分析和可视化时,我们常常需要将字符串类型的时间信息转换为 Pandas 中可用的时间类型。Pandas 提供了 to_datetime() 方法,该方法能够将各种字符串格式的时间信息转换为 Pandas 中的 Datetime 类型,以方便我们更方便地进行时间序列数据的处理和分析。
to_datetime()方法的基本用法
to_datetime() 方法可以将各种时间格式的字符串转换为 Pandas 中的 Datetime 对象,其基本用法如下:
import pandas as pd
# 创建时间序列数据
date_list = ['2022-01-01', '2022-01-02', '2022-01-03', '2022-01-04', '2022-01-05']
# 将时间序列数据转换为Pandas中的Datetime类型
date_series = pd.to_datetime(date_list)
# 输出转换结果
print(date_series)
上述代码中,我们通过 to_datetime() 方法将包含时间字符串的列表转换为 Pandas 中的 Datetime 类型。输出的结果为:
DatetimeIndex(['2022-01-01', '2022-01-02', '2022-01-03', '2022-01-04',
'2022-01-05'],
dtype='datetime64[ns]', freq=None)
可以看到,输出结果中的 dtype=’datetime64[ns]’ 表示输出结果为 Pandas 中的 Datetime 类型,而 freq=None 表示时间序列数据中没有固定的频率信息。
除了将字符串类型的时间信息转换为 Pandas 中的 Datetime 类型外,to_datetime() 方法还可以指定时间格式、设置时间序列数据的开始时间等,下面我们将讲解这些用法的示例说明。
示例一:指定时间格式
如果时间字符串的格式与 Pandas 中默认的格式不一致,则需要通过 format 参数指定时间格式,例如:
import pandas as pd
# 创建时间序列数据
date_list = ['2022-01-01 12:30:00', '2022-01-02 13:45:00']
# 将时间序列数据转换为Pandas中的Datetime类型,并指定时间格式为%Y-%m-%d %H:%M:%S
date_series = pd.to_datetime(date_list, format='%Y-%m-%d %H:%M:%S')
# 输出转换结果
print(date_series)
上述代码中,我们通过 format=’%Y-%m-%d %H:%M:%S’ 指定了时间字符串的格式为 年-月-日 时:分:秒。输出结果为:
DatetimeIndex(['2022-01-01 12:30:00', '2022-01-02 13:45:00'], dtype='datetime64[ns]', freq=None)
示例二:设置开始时间
to_datetime() 方法还可以通过 origin 参数设置时间序列数据的开始时间,例如:
import pandas as pd
# 创建时间序列数据
date_list = ['1', '2', '3', '4', '5']
# 将时间序列数据转换为Pandas中的Datetime类型,并指定开始时间为2022-01-01
date_series = pd.to_datetime(date_list, unit='D', origin='2022-01-01')
# 输出转换结果
print(date_series)
上述代码中,我们通过 unit=’D’ 指定时间序列数据的单位为天,而 origin=’2022-01-01′ 则表示时间序列数据开始的时间为2022-01-01。输出结果为:
DatetimeIndex(['2022-01-02', '2022-01-03', '2022-01-04', '2022-01-05',
'2022-01-06'],
dtype='datetime64[ns]', freq=None)
从输出结果可见,时间序列数据的每个值都在原始的基础上加上了一天,并且开始时间也改为了指定的2022-01-01。