python+pandas如何生成指定日期和重采样

这篇文章给大家分享的是有关python+pandas如何生成指定日期和重采样的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。

python 日期的范围、频率、重采样以及频率转换

pandas有一整套的标准时间序列频率以及用于重采样、频率推断、生成固定频率日期范围的工具。

生成指定日期范围的范围

pandas.date_range()用于生成指定长度的DatatimeIndex:

1)默认情况下,date_range会按着时间间隔为天的方式生成从给定开始到结束时间的时间戳数组;

2)如果只指定开始或结束时间,还需要periods标定时间长度。

import pandas as pd pd.date_range('2017-6-20','2017-6-27')DatetimeIndex(['2017-06-20', '2017-06-21', '2017-06-22', '2017-06-23',    '2017-06-24', '2017-06-25', '2017-06-26', '2017-06-27'],    dtype='datetime64[ns]', freq='D')pd.date_range('2017-6-20 12:59:30','2017-6-27')DatetimeIndex(['2017-06-20 12:59:30', '2017-06-21 12:59:30',    '2017-06-22 12:59:30', '2017-06-23 12:59:30',    '2017-06-24 12:59:30', '2017-06-25 12:59:30',    '2017-06-26 12:59:30'],    dtype='datetime64[ns]', freq='D')pd.date_range('2017-6-20 12:59:30',periods = 8)DatetimeIndex(['2017-06-20 12:59:30', '2017-06-21 12:59:30',    '2017-06-22 12:59:30', '2017-06-23 12:59:30',    '2017-06-24 12:59:30', '2017-06-25 12:59:30',    '2017-06-26 12:59:30', '2017-06-27 12:59:30'],    dtype='datetime64[ns]', freq='D')pd.date_range('2017-6-20 12:59:30',periods = 8, normalize = True) DatetimeIndex(['2017-06-20', '2017-06-21', '2017-06-22', '2017-06-23',    '2017-06-24', '2017-06-25', '2017-06-26', '2017-06-27'],    dtype='datetime64[ns]', freq='D')

频率和日期偏移量

pandas中的频率是由一个基础频率(M、H)也可以是(Hour、Minute、h、min等)

pd.date_range('2017-6-27',periods = 7,freq = '1h40min')DatetimeIndex(['2017-06-27 00:00:00', '2017-06-27 01:30:00',    '2017-06-27 03:00:00', '2017-06-27 04:30:00',    '2017-06-27 06:00:00', '2017-06-27 07:30:00',    '2017-06-27 09:00:00'],    dtype='datetime64[ns]', freq='90T')pd.date_range('2017-6-27',periods = 7,freq = 'M')DatetimeIndex(['2017-06-30', '2017-07-31', '2017-08-31', '2017-09-30',    '2017-10-31', '2017-11-30', '2017-12-31'],    dtype='datetime64[ns]', freq='M')pd.date_range('2017-6-27',periods = 7,freq = 'd') DatetimeIndex(['2017-06-27', '2017-06-28', '2017-06-29', '2017-06-30',    '2017-07-01', '2017-07-02', '2017-07-03'],    dtype='datetime64[ns]', freq='D')pd.date_range('2017-6-27',periods = 7,freq = 'H') DatetimeIndex(['2017-06-27 00:00:00', '2017-06-27 01:00:00',    '2017-06-27 02:00:00', '2017-06-27 03:00:00',    '2017-06-27 04:00:00', '2017-06-27 05:00:00',    '2017-06-27 06:00:00'],    dtype='datetime64[ns]', freq='H')

常用的基础频率

别名偏移量说明
D/d   Day   每日历日  
B   BusinessDay   每工作日  
H/h   Hour   每小时  
T或min   Minute   每分  
S   Secend   每秒  
L或ms   Milli   每毫秒(每千分之一秒)  
U   Micro   每微秒(即百万分之一秒)  
M   MonthEnd   每月最后一个日历日  
BM   BusinessDayEnd   每月最后一个工作  

上表只展示了部分!

郑重声明:本文版权归原作者所有,转载文章仅为传播更多信息之目的,如作者信息标记有误,请第一时间联系我们修改或删除,多谢。