Pandas 如何使用series.first()方法获取行
pandas series.first()方法用于根据日期返回时间序列数据的初始周期。通过应用该方法,我们可以基于日期偏移获取时间序列数据的初始周期。
该方法有一个名为offset的参数,我们还可以指定偏移数据的长度以选择在此限制内的行。
first()方法将返回一个新的Series对象,包含结果行,并且如果输入的系列对象的索引不是DatetimeIndex类型将引发TypeError。
示例1
在下面的示例中,通过使用pandas的DateTime索引和对应的月份名称创建了一个系列“s”。
# importing packages
import pandas as pd
# creating dates
dates = pd.date_range('2021-08-15', periods=10, freq='m')
#creating pandas Series with date index
s = pd.Series(dates.strftime('%b'), index= dates)
print (s)
# get the rows by using first method
result = s.first('1M')
print('Result:')
print(result)
解释
在这里,我们使用了offset为“1M”的first()方法来获取一个月内的行。
输出
输出结果如下:
2021-08-31 Aug
2021-09-30 Sep
2021-10-31 Oct
2021-11-30 Nov
2021-12-31 Dec
2022-01-31 Jan
2022-02-28 Feb
2022-03-31 Mar
2022-04-30 Apr
2022-05-31 May
Freq: M, dtype: object
Result:
2021-08-31 Aug
2021-09-30 Sep
Freq: M, dtype: object
我们可以看到两个系列对象,第一个是原始系列对象,第二个是结果系列对象。在这里,我们得到了包含2行的结果系列。
示例2
同样地,我们创建了一个带有pandas DateTime索引的pandas对象。然后,我们尝试获取索引在3个月内的行。
# importing packages
import pandas as pd
# creating dates
dates = pd.date_range('2021-01-20', periods=10, freq='2W')
#creating pandas Series with date index
s = pd.Series(dates.strftime('%b'), index= dates)
print (s)
# get the rows by using first method
result = s.first('3M')
print('Result:')
print(result)
输出
输出如下:
2021-01-24 Jan
2021-02-07 Feb
2021-02-21 Feb
2021-03-07 Mar
2021-03-21 Mar
2021-04-04 Apr
2021-04-18 Apr
2021-05-02 May
2021-05-16 May
2021-05-30 May
Freq: 2W-SUN, dtype: object
Result:
2021-01-24 Jan
2021-02-07 Feb
2021-02-21 Feb
2021-03-07 Mar
2021-03-21 Mar
Freq: 2W-SUN, dtype: object
第一种方法成功地返回了包含5行数据的新系列对象。这5行数据的索引都在前3个月之内。