在Pandas中使用Timedelta和Period来创建基于DateTime的索引

  • Post category:Python

在Pandas中可以使用Timedelta和Period来创建基于DateTime的索引,它们分别代表时间差以及时间周期。下面我们将详细讲解如何使用这两种方法来创建基于DateTime的索引。

使用Timedelta创建基于DateTime的索引

Timedelta是Python datetime库中用于表示时间差的类,可以用它来创建基于DateTime的索引。

1. 创建一段时间段

import pandas as pd
import datetime

time1 = datetime.datetime.now() # 当前时间
time2 = time1 - datetime.timedelta(days=30) # 当前时间往前30天
time_index = pd.date_range(time2, time1, freq='D') # 每天的时间序列

这个代码段首先获取了当前时间,然后使用timedelta对象获取了当前时间往前30天的时间。接着使用pd.date_range方法来创建每天的时间序列,其中time1和time2为时间序列的起始和结束时间,freq=’D’表示每天的时间间隔。这样就得到了包含每天时间的时间索引。

2. 把时间字符串转换成时间

time_str = ['2021-10-01', '2021-10-02', '2021-10-03']
time_index = pd.to_datetime(time_str)

我们可以使用pd.to_datetime方法将时间字符串转换为datetime,这个方法会自动将时间字符串解析为datetime对象。

3. 创建基于Timedelta的索引

import pandas as pd

time_str = ['2021-10-01', '2021-10-02', '2021-10-03', '2021-10-04', '2021-10-05']
time_index = pd.to_datetime(time_str)
time_delta = pd.Timedelta(days=1)
new_index = time_index + time_delta

我们可以使用pd.Timedelta方法定义一个时间差,这里定义的是一天的时间差(days=1)。接着,我们可以将时间索引和时间差相加,得到新的时间索引。

使用Period创建基于DateTime的索引

Period代表一段时间周期,也可以用它来创建基于DateTime的索引。

1. 创建一段时间段

import pandas as pd

period_index = pd.period_range('2021-01-01', '2021-12-31', freq='M')

这个代码段创建了2021年每个月的时间段,其中’2021-01-01’是时间段的开始时间,’2021-12-31’是时间段的结束时间。freq=’M’表示每个月。

2. 把时间字符串转换成Period

time_str = ['2021-10', '2021-11', '2021-12']
period_index = pd.PeriodIndex(time_str, freq='M')

我们可以使用pd.PeriodIndex方法将时间字符串转换为Period对象。

3. 创建基于Period的索引

import pandas as pd

period_index = pd.period_range('2021-01-01', '2021-12-31', freq='M')
new_index = period_index + 1

我们可以将Period对象与数字相加,表示将周期增加1,这里表示将每个月的周期增加1。

以上就是使用Timedelta和Period在Pandas中创建基于DateTime的索引的完整攻略,希望可以帮助到你。