Pandas教程-Pandas时间段
时间段代表时间跨度,例如天数、年份、季度或月份等。它被定义为一种允许我们将频率转换为时间段的类。
生成时间段和频率转换
我们可以使用 'Period' 命令和频率 'M' 生成时间段。如果我们使用 'asfreq' 操作与 'start' 操作,日期将打印 '01',而如果我们使用 'end' 选项,日期将打印 '31'。
示例:
import pandas as pd
x = pd.Period('2014', freq='S')
x.asfreq('D', 'start')
输出:
Period('2014-01-01', 'D')
示例:
import pandas as pd
x = pd.Period('2014', freq='S')
x.asfreq('D', 'end')
输出:
Period('2014-01-31', 'D')
时间段算术
时间段算术用于对时间段执行各种算术操作。所有操作将根据 'freq' 进行。
import pandas as pd
x = pd.Period('2014', freq='Q')
x
输出:
Period('2014', 'Q-DEC')
示例:
import pandas as pd
x = pd.Period('2014', freq='Q')
x + 1
输出:
Period('2015', 'Q-DEC')
创建时间段范围
我们可以使用 'period_range' 命令创建时间段范围。
import pandas as pd
p = pd.period_range('2012', '2017', freq='A')
p
输出:
PeriodIndex(['2012-01-02', '2012-01-03', '2012-01-04', '2012-01-05',
'2012-01-06', '2012-01-09', '2012-01-10', '2012-01-11',
'2012-01-12', '2012-01-13',
'2016-12-20', '2016-12-21', '2016-12-22', '2016-12-23',
'2016-12-26', '2016-12-27', '2016-12-28', '2016-12-29',
'2016-12-30', '2017-01-02'],
dtype='period[B]', length=1306, freq='B')
将字符串日期转换为时间段
如果我们想将字符串日期转换为时间段,首先需要将字符串转换为日期格式,然后我们可以将日期转换为时间段。
# dates as string
p = ['2012-06-05', '2011-07-09', '2012-04-06']
# convert string to date format
x = pd.to_datetime(p)
x
输出:
DatetimeIndex(['2012-06-05', '2011-07-09', '2012-04-06'], dtype='datetime64[ns]', freq=None)
将时间段转换为时间戳
如果我们将时间段转换回时间戳,我们可以简单地使用 'to_timestamp' 命令。
import pandas as pd
prd
prd.to_timestamp()
输出:
DatetimeIndex(['2017-04-02', '2016-04-06', '2016-05-08'], dtype='datetime64[ns]', freq=None)