當DataFrame的索引為時間對象時,可以很方便的進行數據的篩選。
#生成時間范圍
pd.date_range('2010-01-01','2010-01-08')
>>>DatetimeIndex(['2010-01-01', '2010-01-02', '2010-01-03', '2010-01-04','2010-01-05', '2010-01-06', '2010-01-07', '2010-01-08'],dtype='datetime64[ns]', freq='D')#指定時間長度生成時間范圍
pd.date_range('2010-01-01',periods=10)
>>>DatetimeIndex(['2010-01-01', '2010-01-02', '2010-01-03', '2010-01-04','2010-01-05', '2010-01-06', '2010-01-07', '2010-01-08','2010-01-09', '2010-01-10'],dtype='datetime64[ns]', freq='D')#指定時間長度(10)、間隔(隔一個月)生成時間范圍
pd.date_range('2010-01-01',periods=10,freq='M')
>>>DatetimeIndex(['2010-01-31', '2010-02-28', '2010-03-31', '2010-04-30','2010-05-31', '2010-06-30', '2010-07-31', '2010-08-31','2010-09-30', '2010-10-31'],dtype='datetime64[ns]', freq='M')#指定時間長度(10)、間隔(隔1個小時20分鐘)生成時間范圍
pd.date_range('2010-01-01',periods=10,freq='1h20min')
>>>DatetimeIndex(['2010-01-01 00:00:00', '2010-01-01 01:20:00','2010-01-01 02:40:00', '2010-01-01 04:00:00','2010-01-01 05:20:00', '2010-01-01 06:40:00','2010-01-01 08:00:00', '2010-01-01 09:20:00','2010-01-01 10:40:00', '2010-01-01 12:00:00'],dtype='datetime64[ns]', freq='80T')#按工作日生成時間范圍
pd.date_range('2010-01-01',periods=10,freq='B')
>>>DatetimeIndex(['2010-01-01', '2010-01-04', '2010-01-05', '2010-01-06','2010-01-07', '2010-01-08', '2010-01-11', '2010-01-12','2010-01-13', '2010-01-14'],dtype='datetime64[ns]', freq='B')
#創建一個索引為日期1000天,值從0到999的Series
a=pd.Series(np.arange(1000),index=pd.date_range('2010-01-05',periods=1000))
>>> 2010-01-05 02010-01-06 12010-01-07 2...2012-09-29 9982012-09-30 999#篩選1月份的數據
a['2010-01']
>>> 2010-01-05 02010-01-06 12010-01-07 2...2010-01-30 252010-01-31 26#時間切片篩選2010到2011-02-03的數據
a['2010':'2011-02-02']
>>> 2010-01-05 02010-01-06 1...2011-02-01 3922011-02-02 393
a=pd.Series(np.arange(1000),index=pd.date_range('2010-01-05',periods=1000))
>>> 2010-01-05 02010-01-06 12010-01-07 2...2012-09-29 9982012-09-30 999#按每周求和,每7天進行相加求和輸出
a.resample('W').sum()
>>> 2010-01-10 152010-01-17 632010-01-24 1122010-01-31 161...2012-09-09 68252012-09-16 68742012-09-23 69232012-09-30 6972#按每月求平均值
a.resample('M').mean()
>>> 2010-01-31 13.02010-02-28 40.52010-03-31 70.0...2012-07-31 923.02012-08-31 954.02012-09-30 984.5
pd.read_csv('demo.csv',parse_dates = ['col1'],infer_datetime_format=True)
版权声明:本站所有资料均为网友推荐收集整理而来,仅供学习和研究交流使用。
工作时间:8:00-18:00
客服电话
电子邮件
admin@qq.com
扫码二维码
获取最新动态