pandas 是 python 中一个功能强大的库,这里就不再复述了,简单介绍下用日期范围筛选 pandas 数据。
日期转换
用来筛选的列是 date 类型,所以这里要把要筛选的日期范围从字符串转成 date 类型
比如我的数据包含列名为 trade_date,从 20050101 - 20190926 的数据,我要筛选出 20050606 - 20071016 的数据,那么,先如下转换数据类型:
s_date = datetime.datetime.strptime('20050606', '%Y%m%d').date() e_date = datetime.datetime.strptime('20071016', '%Y%m%d').date()
数据筛选
非常简单,一行代码就搞定了:
df = df[(df['tra_date'] >= s_date) & (df['tra_date'] <= e_date)]
注意事项
- 多个筛选条件并存时,不能用 and 连接,需要用单个 & 符号。
- s_date <= df['trade_date'] <= e_date 等同于 and
pandas提取某段时间范围数据的五种方法
import pandas as pd #读取文件 df = pd.read_csv('./TianQi.csv') #获取九月份数据的几种方法 #方法一 使用行索引切片,['2019/9/1':'2019/9/30'],缺点是要求日期必须是连续的。为了方便查看取前5条,以下其他方法均取前5条,由于未进行排序,顺序会有差异 df.set_index('日期',inplace=True) print(df['2019/9/1':'2019/9/30'].head()) #或者print(df.loc['2019/9/1':'2019/9/30',:]) ''' 打印: 最高温度 最低温度 天气 风向 风级 空气质量 日期 2019/9/1 33℃ 19℃ 多云~晴 西南风 2级 良 2019/9/2 34℃ 20℃ 晴 南风 2级 良 2019/9/3 33℃ 20℃ 晴 东南风 2级 良 2019/9/7 34℃ 21℃ 晴 西南风 2级 良 2019/9/8 35℃ 22℃ 晴~多云 东北风 2级 良 ''' #方法二 利用列表生成式和startwith('2019/9')生成bool列表,缺点,比较麻烦。 print(df.loc[[True if i.startswith('2019/9') else False for i in df.index.tolist()],:].head()) ''' 打印: 最高温度 最低温度 天气 风向 风级 空气质量 日期 2019/9/4 32℃ 19℃ 晴 东南风 2级 良 2019/9/5 33℃ 20℃ 晴 东南风 2级 良 2019/9/6 33℃ 20℃ 晴 东南风 1级 良 2019/9/1 33℃ 19℃ 多云~晴 西南风 2级 良 2019/9/2 34℃ 20℃ 晴 南风 2级 良 ''' #方法三 利用pandas的str和startswith('2019/9')|contains('2019/9')。 df1 = pd.read_csv('./TianQi.csv') print(df1[df1['日期'].str.startswith('2019/9')].head()) ''' 打印: 日期 最高温度 最低温度 天气 风向 风级 空气质量 243 2019/9/4 32℃ 19℃ 晴 东南风 2级 良 244 2019/9/5 33℃ 20℃ 晴 东南风 2级 良 245 2019/9/6 33℃ 20℃ 晴 东南风 1级 良 246 2019/9/1 33℃ 19℃ 多云~晴 西南风 2级 良 247 2019/9/2 34℃ 20℃ 晴 南风 2级 良 ''' #方法四 讲日期转换成datetime类型 df1['日期'] = pd.to_datetime(df1['日期']) df1.set_index('日期',inplace=True,drop=True) #print(df1['2019']) #取2019年数据,或者df.loc['2019'] print(df1['2019/09'].head()) ''' 取201909月数据,其他变形写法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',:] 打印: 最高温度 最低温度 天气 风向 风级 空气质量 日期 2019-09-04 32℃ 19℃ 晴 东南风 2级 良 2019-09-05 33℃ 20℃ 晴 东南风 2级 良 2019-09-06 33℃ 20℃ 晴 东南风 1级 良 2019-09-01 33℃ 19℃ 多云~晴 西南风 2级 良 2019-09-02 34℃ 20℃ 晴 南风 2级 良 ''' #注意如果要获取某一天的数据,则必须使用切片,比如df['2019/9/1':'2019/9/1'] ''' 获取一段时间 df1.truncate(after = '2019-9-01') # 返回 after 以前的数据 df1.truncate(before = '2019-9-01') # 返回 before 以后的数据 df1['20190901':'2019/9/10'] ''' #方法五 #读取文件时,通过parse_dates=['日期'],将日期转化为datetime类型,相当于 pd.to_datetime。同时可以使用index_col将那一列作为的行索引,相当有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()) ''' 打印: 日期 最高温度 最低温度 天气 风向 风级 空气质量 年 月 243 2019-09-04 32℃ 19℃ 晴 东南风 2级 良 2019 9 244 2019-09-05 33℃ 20℃ 晴 东南风 2级 良 2019 9 245 2019-09-06 33℃ 20℃ 晴 东南风 1级 良 2019 9 246 2019-09-01 33℃ 19℃ 多云~晴 西南风 2级 良 2019 9 247 2019-09-02 34℃ 20℃ 晴 南风 2级 良 2019 9 ''' ''' dt的其他常用属性和方法如下: df['日期'].dt.day # 提取日期 df['日期'].dt.year # 提取年份 df['日期'].dt.hour # 提取小时 df['日期'].dt.minute # 提取分钟 df['日期'].dt.second # 提取秒 df['日期'].dt.week # 一年中的第几周 df['日期'].dt.weekday # 返回一周中的星期几,0代表星期一,6代表星期天 df['日期'].dt.dayofyear # 返回一年的第几天 df['日期'].dt.quarter # 得到每个日期分别是第几个季度。 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() # 函数将给定系列对象中的时间转换为午夜。 '''
广告合作:本站广告合作请联系QQ:858582 申请时备注:广告合作(否则不回)
免责声明:本站资源来自互联网收集,仅供用于学习和交流,请遵循相关法律法规,本站一切资源不代表本站立场,如有侵权、后门、不妥请联系本站删除!
免责声明:本站资源来自互联网收集,仅供用于学习和交流,请遵循相关法律法规,本站一切资源不代表本站立场,如有侵权、后门、不妥请联系本站删除!
暂无评论...
RTX 5090要首发 性能要翻倍!三星展示GDDR7显存
三星在GTC上展示了专为下一代游戏GPU设计的GDDR7内存。
首次推出的GDDR7内存模块密度为16GB,每个模块容量为2GB。其速度预设为32 Gbps(PAM3),但也可以降至28 Gbps,以提高产量和初始阶段的整体性能和成本效益。
据三星表示,GDDR7内存的能效将提高20%,同时工作电压仅为1.1V,低于标准的1.2V。通过采用更新的封装材料和优化的电路设计,使得在高速运行时的发热量降低,GDDR7的热阻比GDDR6降低了70%。
更新日志
2024年11月23日
2024年11月23日
- 凤飞飞《我们的主题曲》飞跃制作[正版原抓WAV+CUE]
- 刘嘉亮《亮情歌2》[WAV+CUE][1G]
- 红馆40·谭咏麟《歌者恋歌浓情30年演唱会》3CD[低速原抓WAV+CUE][1.8G]
- 刘纬武《睡眠宝宝竖琴童谣 吉卜力工作室 白噪音安抚》[320K/MP3][193.25MB]
- 【轻音乐】曼托凡尼乐团《精选辑》2CD.1998[FLAC+CUE整轨]
- 邝美云《心中有爱》1989年香港DMIJP版1MTO东芝首版[WAV+CUE]
- 群星《情叹-发烧女声DSD》天籁女声发烧碟[WAV+CUE]
- 刘纬武《睡眠宝宝竖琴童谣 吉卜力工作室 白噪音安抚》[FLAC/分轨][748.03MB]
- 理想混蛋《Origin Sessions》[320K/MP3][37.47MB]
- 公馆青少年《我其实一点都不酷》[320K/MP3][78.78MB]
- 群星《情叹-发烧男声DSD》最值得珍藏的完美男声[WAV+CUE]
- 群星《国韵飘香·贵妃醉酒HQCD黑胶王》2CD[WAV]
- 卫兰《DAUGHTER》【低速原抓WAV+CUE】
- 公馆青少年《我其实一点都不酷》[FLAC/分轨][398.22MB]
- ZWEI《迟暮的花 (Explicit)》[320K/MP3][57.16MB]