欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

pandas 按日期范圍篩選數(shù)據(jù)的實(shí)現(xiàn)

 更新時(shí)間:2021年02月20日 11:54:36   作者:M-finder  
這篇文章主要介紹了pandas 按日期范圍篩選數(shù)據(jù)的實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧

pandas 是 python 中一個(gè)功能強(qiáng)大的庫,這里就不再?gòu)?fù)述了,簡(jiǎn)單介紹下用日期范圍篩選 pandas 數(shù)據(jù)。

日期轉(zhuǎn)換

用來篩選的列是 date 類型,所以這里要把要篩選的日期范圍從字符串轉(zhuǎn)成 date 類型

比如我的數(shù)據(jù)包含列名為 trade_date,從 20050101 - 20190926 的數(shù)據(jù),我要篩選出 20050606 - 20071016 的數(shù)據(jù),那么,先如下轉(zhuǎn)換數(shù)據(jù)類型:

s_date = datetime.datetime.strptime('20050606', '%Y%m%d').date()
e_date = datetime.datetime.strptime('20071016', '%Y%m%d').date()

數(shù)據(jù)篩選

非常簡(jiǎn)單,一行代碼就搞定了:

df = df[(df['tra_date'] >= s_date) & (df['tra_date'] <= e_date)]

注意事項(xiàng)

  • 多個(gè)篩選條件并存時(shí),不能用 and 連接,需要用單個(gè) & 符號(hào)。
  • s_date <= df['trade_date'] <= e_date 等同于 and

pandas提取某段時(shí)間范圍數(shù)據(jù)的五種方法

import pandas as pd
 
#讀取文件
df = pd.read_csv('./TianQi.csv')
 
#獲取九月份數(shù)據(jù)的幾種方法
#方法一  使用行索引切片,['2019/9/1':'2019/9/30'],缺點(diǎn)是要求日期必須是連續(xù)的。為了方便查看取前5條,以下其他方法均取前5條,由于未進(jìn)行排序,順序會(huì)有差異
df.set_index('日期',inplace=True)
print(df['2019/9/1':'2019/9/30'].head())  #或者print(df.loc['2019/9/1':'2019/9/30',:]) 
'''
打印:
     最高溫度 最低溫度  天氣  風(fēng)向 風(fēng)級(jí) 空氣質(zhì)量
日期                  
2019/9/1 33℃ 19℃ 多云~晴 西南風(fēng) 2級(jí)  良
2019/9/2 34℃ 20℃   晴  南風(fēng) 2級(jí)  良
2019/9/3 33℃ 20℃   晴 東南風(fēng) 2級(jí)  良
2019/9/7 34℃ 21℃   晴 西南風(fēng) 2級(jí)  良
2019/9/8 35℃ 22℃ 晴~多云 東北風(fēng) 2級(jí)  良
'''
 
#方法二  利用列表生成式和startwith('2019/9')生成bool列表,缺點(diǎn),比較麻煩。
print(df.loc[[True if i.startswith('2019/9') else False for i in df.index.tolist()],:].head())
'''
打印:
     最高溫度 最低溫度  天氣  風(fēng)向 風(fēng)級(jí) 空氣質(zhì)量
日期                  
2019/9/4 32℃ 19℃   晴 東南風(fēng) 2級(jí)  良
2019/9/5 33℃ 20℃   晴 東南風(fēng) 2級(jí)  良
2019/9/6 33℃ 20℃   晴 東南風(fēng) 1級(jí)  良
2019/9/1 33℃ 19℃ 多云~晴 西南風(fēng) 2級(jí)  良
2019/9/2 34℃ 20℃   晴  南風(fēng) 2級(jí)  良
'''
 
#方法三  利用pandas的str和startswith('2019/9')|contains('2019/9')。
df1 = pd.read_csv('./TianQi.csv')
print(df1[df1['日期'].str.startswith('2019/9')].head())
'''
打?。?
     日期 最高溫度 最低溫度  天氣  風(fēng)向 風(fēng)級(jí) 空氣質(zhì)量
243 2019/9/4 32℃ 19℃   晴 東南風(fēng) 2級(jí)  良
244 2019/9/5 33℃ 20℃   晴 東南風(fēng) 2級(jí)  良
245 2019/9/6 33℃ 20℃   晴 東南風(fēng) 1級(jí)  良
246 2019/9/1 33℃ 19℃ 多云~晴 西南風(fēng) 2級(jí)  良
247 2019/9/2 34℃ 20℃   晴  南風(fēng) 2級(jí)  良
'''
 
#方法四  講日期轉(zhuǎn)換成datetime類型
df1['日期'] = pd.to_datetime(df1['日期'])
df1.set_index('日期',inplace=True,drop=True)
#print(df1['2019'])  #取2019年數(shù)據(jù),或者df.loc['2019']
print(df1['2019/09'].head())  
'''
 取201909月數(shù)據(jù),其他變形寫法df['2019-9'] df['2019-09'] df['2019/9'] df.loc['2019-9',:] df.loc['2019-09',:] df.loc['2019/09',:] df.loc['2019/9',:]
打?。?
      最高溫度 最低溫度  天氣  風(fēng)向 風(fēng)級(jí) 空氣質(zhì)量
日期                   
2019-09-04 32℃ 19℃   晴 東南風(fēng) 2級(jí)  良
2019-09-05 33℃ 20℃   晴 東南風(fēng) 2級(jí)  良
2019-09-06 33℃ 20℃   晴 東南風(fēng) 1級(jí)  良
2019-09-01 33℃ 19℃ 多云~晴 西南風(fēng) 2級(jí)  良
2019-09-02 34℃ 20℃   晴  南風(fēng) 2級(jí)  良
'''
#注意如果要獲取某一天的數(shù)據(jù),則必須使用切片,比如df['2019/9/1':'2019/9/1'] 
'''
獲取一段時(shí)間
df1.truncate(after = '2019-9-01') # 返回 after 以前的數(shù)據(jù)
df1.truncate(before = '2019-9-01') # 返回 before 以后的數(shù)據(jù)
df1['20190901':'2019/9/10']
'''
 
#方法五  #讀取文件時(shí),通過parse_dates=['日期'],將日期轉(zhuǎn)化為datetime類型,相當(dāng)于 pd.to_datetime。同時(shí)可以使用index_col將那一列作為的行索引,相當(dāng)有set_index。
df2 = pd.read_csv('./TianQi.csv',parse_dates=['日期'])
df2['年'] = df2['日期'].dt.year
df2['月'] = df2['日期'].dt.month
qstr = "年=='2019' and 月=='9'"
print(df2.query(qstr).head())
'''
打?。?
      日期 最高溫度 最低溫度  天氣  風(fēng)向 風(fēng)級(jí) 空氣質(zhì)量   年 月
243 2019-09-04 32℃ 19℃   晴 東南風(fēng) 2級(jí)  良 2019 9
244 2019-09-05 33℃ 20℃   晴 東南風(fēng) 2級(jí)  良 2019 9
245 2019-09-06 33℃ 20℃   晴 東南風(fēng) 1級(jí)  良 2019 9
246 2019-09-01 33℃ 19℃ 多云~晴 西南風(fēng) 2級(jí)  良 2019 9
247 2019-09-02 34℃ 20℃   晴  南風(fēng) 2級(jí)  良 2019 9
'''
 
'''
dt的其他常用屬性和方法如下:
df['日期'].dt.day  # 提取日期
df['日期'].dt.year # 提取年份
df['日期'].dt.hour # 提取小時(shí)
df['日期'].dt.minute # 提取分鐘
df['日期'].dt.second # 提取秒
df['日期'].dt.week # 一年中的第幾周
df['日期'].dt.weekday # 返回一周中的星期幾,0代表星期一,6代表星期天
df['日期'].dt.dayofyear # 返回一年的第幾天
df['日期'].dt.quarter # 得到每個(gè)日期分別是第幾個(gè)季度。
df['日期'].dt.is_month_start # 判斷日期是否是每月的第一天
df['日期'].dt.is_month_end # 判斷日期是否是每月的最后一天
df['日期'].dt.is_leap_year # 判斷是否是閏年
df['日期'].dt.month_name() # 返回月份的英文名稱
df['日期'].dt.to_period('Q') # M 表示月份,Q 表示季度,A 表示年度,D 表示按天
df['日期'].dt.weekday_name # 返回星期幾的英文 由于pandas版本問題,改變pandas版本在cmd中輸入:pip install --upgrade pandas==0.25.3
Series.dt.normalize() # 函數(shù)將給定系列對(duì)象中的時(shí)間轉(zhuǎn)換為午夜。
'''

到此這篇關(guān)于pandas 按日期范圍篩選數(shù)據(jù)的實(shí)現(xiàn)的文章就介紹到這了,更多相關(guān)pandas 日期范圍篩選內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • python爬蟲之驗(yàn)證碼篇3-滑動(dòng)驗(yàn)證碼識(shí)別技術(shù)

    python爬蟲之驗(yàn)證碼篇3-滑動(dòng)驗(yàn)證碼識(shí)別技術(shù)

    本篇涉及到的驗(yàn)證碼為滑動(dòng)驗(yàn)證碼,不同于極驗(yàn)證,本驗(yàn)證碼難度略低,需要的將滑塊拖動(dòng)到矩形區(qū)域右側(cè)即可完成。對(duì)python爬蟲滑動(dòng)驗(yàn)證碼識(shí)別技術(shù)感興趣的朋友跟隨小編一起看看吧
    2019-04-04
  • python數(shù)據(jù)抓取3種方法總結(jié)

    python數(shù)據(jù)抓取3種方法總結(jié)

    這篇文章主要給大家介紹了關(guān)于python數(shù)據(jù)抓取的3種方法,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2021-02-02
  • python typing模塊--類型提示支持

    python typing模塊--類型提示支持

    這篇文章主要介紹python typing模塊類型提示支持, typing 模塊只有在python3.5以上的版本中才可以使用,pycharm目前支持typing檢查,下面進(jìn)入文章一起了解詳細(xì)內(nèi)容吧
    2021-10-10
  • 在django中查詢獲取數(shù)據(jù),get, filter,all(),values()操作

    在django中查詢獲取數(shù)據(jù),get, filter,all(),values()操作

    這篇文章主要介紹了在django中查詢獲取數(shù)據(jù),get, filter,all(),values()操作,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧
    2020-08-08
  • Python實(shí)現(xiàn)刪除重復(fù)文件的示例代碼

    Python實(shí)現(xiàn)刪除重復(fù)文件的示例代碼

    這篇文章主要為大家詳細(xì)介紹了如何利用Python實(shí)現(xiàn)刪除重復(fù)文件功能,文中的示例代碼講解詳細(xì),對(duì)我們學(xué)習(xí)Python有一定的幫助,感興趣的小伙伴的可以了解一下
    2023-02-02
  • 詳解Python中DOM方法的動(dòng)態(tài)性

    詳解Python中DOM方法的動(dòng)態(tài)性

    這篇文章主要介紹了詳解Python中DOM方法的動(dòng)態(tài)性,xml.dom模塊在Python的網(wǎng)絡(luò)編程中相當(dāng)有用,本文來自于IBM官網(wǎng)的開發(fā)者技術(shù)文檔,需要的朋友可以參考下
    2015-04-04
  • 淺談Python 對(duì)象內(nèi)存占用

    淺談Python 對(duì)象內(nèi)存占用

    下面小編就為大家?guī)硪黄獪\談Python 對(duì)象內(nèi)存占用。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2016-07-07
  • 淺談Python用QQ郵箱發(fā)送郵件時(shí)授權(quán)碼的問題

    淺談Python用QQ郵箱發(fā)送郵件時(shí)授權(quán)碼的問題

    下面小編就為大家分享一篇淺談Python用QQ郵箱發(fā)送郵件時(shí)授權(quán)碼的問題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧
    2018-01-01
  • 解決安裝torch后,torch.cuda.is_available()結(jié)果為false的問題

    解決安裝torch后,torch.cuda.is_available()結(jié)果為false的問題

    這篇文章主要介紹了解決安裝torch后,torch.cuda.is_available()結(jié)果為false的問題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-12-12
  • Python基于staticmethod裝飾器標(biāo)示靜態(tài)方法

    Python基于staticmethod裝飾器標(biāo)示靜態(tài)方法

    這篇文章主要介紹了Python基于staticmethod裝飾器標(biāo)示靜態(tài)方法,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-10-10

最新評(píng)論