數據庫怎么做索引,Pandas時間索引的騷操作

 2023-10-20 阅读 17 评论 0

摘要:當DataFrame的索引為時間對象時,可以很方便的進行數據的篩選。 時間范圍生成 #生成時間范圍 pd.date_range('2010-01-01','2010-01-08') >>>DatetimeIndex(['2010-01-01', '2010-01-02', '2010-01-03', '2010-01

當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

讀取excel時將字符串列轉化為時間類型的列

pd.read_csv('demo.csv',parse_dates = ['col1'],infer_datetime_format=True)

版权声明:本站所有资料均为网友推荐收集整理而来,仅供学习和研究交流使用。

原文链接:https://hbdhgg.com/3/152136.html

发表评论:

本站为非赢利网站,部分文章来源或改编自互联网及其他公众平台,主要目的在于分享信息,版权归原作者所有,内容仅供读者参考,如有侵权请联系我们删除!

Copyright © 2022 匯編語言學習筆記 Inc. 保留所有权利。

底部版权信息