文章目录

  • 1、date_range()
  • 2、resample()
  • 3、to_period()

1、date_range()

生成日期序列
pandas.date_range(start=None, end=None, periods=None, freq=None, closed=None)
常见参数:start:开始日期end:结束日期periods:日期数量。 若同时指定start,end,periods,则会生成指定数量的时间间隔相同的日期closed:指定区间的开闭,默认是None,包含start和end  (left,right)freq:日期的频率,默认是'D'即天,常见还有M(月、显示xxxx-xx-31每月的最后一天) 如下图 还可以数字与其组合,如5D就是时间间隔为5天
freq= 说明
A/ Y year年 每年的最后一天
AS/YS AS/YS 每年的第一天
M month 每月的最后一天
MS 每月的第一天
D day 每天
Q quarter 每季度的最后一天
QS 每季度的第一天
H
T/min
S
import pandas as pd
# 1、period指定日期数量,日期间隔相同 如结果有6个日期,且间隔为12日
pd.date_range(start='2022-04-01',end='2022-05-31',periods=6)
输出:
DatetimeIndex(['2022-04-01', '2022-04-13', '2022-04-25', '2022-05-07','2022-05-19', '2022-05-31'],dtype='datetime64[ns]', freq=None)# 2、freq类似指定日期格式:freq='D'表示日期格式为xxxx-xx-xx 具体到日
pd.date_range(start='2022-04-01',end='2022-04-11',freq='D')
输出:
DatetimeIndex(['2022-04-01', '2022-04-02', '2022-04-03', '2022-04-04','2022-04-05', '2022-04-06', '2022-04-07', '2022-04-08','2022-04-09', '2022-04-10', '2022-04-11'],dtype='datetime64[ns]', freq='D')# 3、freq还可以赋值数字+字母:表示间隔为几个单位,如freq='2D' 表示间隔2日
pd.date_range(start='2022-04-01',end='2022-04-11',freq='2D')
输出:
DatetimeIndex(['2022-04-01', '2022-04-03', '2022-04-05', '2022-04-07','2022-04-09', '2022-04-11'],dtype='datetime64[ns]', freq='2D')# 4、closed表示日期是否包含左右边界日期;如下语句,包含右边日期,但不包含左边日期,结果显示也没有2022-04-01的
pd.date_range(start='2022-04-01',end='2022-04-11',freq='2D',closed='right')
输出:
DatetimeIndex(['2022-04-03', '2022-04-05', '2022-04-07', '2022-04-09','2022-04-11'],dtype='datetime64[ns]', freq='2D')# 5、freq='M' 表示以月为最小单位 显示的是每月最后一天
pd.date_range(start='2022-04-01',end='2022-05-31',freq='M')
输出:
DatetimeIndex(['2022-04-30', '2022-05-31'], dtype='datetime64[ns]', freq='M')# 5.2、如果不想要最后的日,可以利用to_period('M')将其不显示
pd.date_range(start='2022-04-01',end='2022-05-31',freq='M').to_period('M')
输出:
PeriodIndex(['2022-04', '2022-05'], dtype='period[M]', freq='M')# 6、freq='QS' 季度的第一天
pd.date_range(start='2022-01-01',end='2022-12-31',freq='QS')
输出:
DatetimeIndex(['2022-01-01', '2022-04-01', '2022-07-01', '2022-10-01'], dtype='datetime64[ns]', freq='QS-JAN')# 9、freq='H' 时  start='2022-04-01',end='2022-04-02' 表示的只是1号的24小时
pd.date_range(start='2022-04-01',end='2022-04-02',freq='6H')
输出:
DatetimeIndex(['2022-04-01 00:00:00', '2022-04-01 06:00:00','2022-04-01 12:00:00', '2022-04-01 18:00:00','2022-04-02 00:00:00'],dtype='datetime64[ns]', freq='6H')pd.date_range(start='2022-04-01',end='2022-04-02',freq='6H',closed='right')
输出: 左开右闭 指的是不包含2022-04-01 00:00:00 包含2022-04-02 00:00:00
DatetimeIndex(['2022-04-01 06:00:00', '2022-04-01 12:00:00','2022-04-01 18:00:00', '2022-04-02 00:00:00'],dtype='datetime64[ns]', freq='6H')

2、resample()

重新采样,是对原样本重新处理的一个方法,是一个对常规时间序列数据重新采样和频率转换的便捷的方法。
用这个方法之前需将日期作为索引并转化为日期型索引DataFrame.resample(rule,label=None).sum()等函数 两个指标足以
rule : 重构规则('M'、'2D'等上图所示)
label:指定,我们使用哪一个作为新的label 区间的左还是右 默认左
np.random.seed(20)  #保证每次生成的随机数都一样
dt = pd.date_range(start='2022-01-01',end='2022-04-30',freq='D')
num = np.random.randint(100,200,120)
df = pd.DataFrame(num,index=dt,columns=['num'])
df.index  # 看看索引类型 DatetimeIndex 日期型索引
DatetimeIndex(['2022-01-01', '2022-01-02', '2022-01-03', '2022-01-04','2022-01-05', '2022-01-06', '2022-01-07', '2022-01-08','2022-01-09', '2022-01-10',...'2022-04-21', '2022-04-22', '2022-04-23', '2022-04-24','2022-04-25', '2022-04-26', '2022-04-27', '2022-04-28','2022-04-29', '2022-04-30'],dtype='datetime64[ns]', length=120, freq='D')# 将日期索引重新采样为 每月的第一天为一组 进行求和
df.resample('MS').sum()num
2022-01-01  4647
2022-02-01  4181
2022-03-01  4505
2022-04-01  4489# 不显示日期后的日
df.resample('M').sum().to_period('M')num
2022-01 4647
2022-02 4181
2022-03 4505
2022-04 4489# 按季度分组求和
df.resample('Q').sum()num
2022-03-31  13333
2022-06-30  4489# .to_period('Q') 按季度显示 格式xxxxQn  xxxx年Qn季度
df.resample('Q').sum().to_period('Q')num
2022Q1  13333
2022Q2  4489

3、to_period()

to_period('')描述的是该日期处于那个时期
例如to_period('M') 将日期以月为单位即 xxxx-xx  某天处于某个月分
# 生成日期
dt = pd.date_range(start='2021-04-01',end='2023-04-30',freq='100D')
DatetimeIndex(['2021-04-01', '2021-07-10', '2021-10-18', '2022-01-26','2022-05-06', '2022-08-14', '2022-11-22', '2023-03-02'],dtype='datetime64[ns]', freq='100D')
# 处于某年
dt.to_period('Y')
PeriodIndex(['2021', '2021', '2021', '2022', '2022', '2022', '2022', '2023'], dtype='period[A-DEC]', freq='A-DEC')
# 处于某月
dt.to_period('M')
PeriodIndex(['2021-04', '2021-07', '2021-10', '2022-01', '2022-05', '2022-08','2022-11', '2023-03'],dtype='period[M]', freq='M')
# 处于某个季度
dt.to_period('Q')
PeriodIndex(['2021Q2', '2021Q3', '2021Q4', '2022Q1', '2022Q2', '2022Q3','2022Q4', '2023Q1'],dtype='period[Q-DEC]', freq='Q-DEC')

pandas数据日期函数之date_range()、resample()与to_period()相关推荐

  1. 【Pandas 数据查找函数 详解】

    本文介绍了Pandas数据查找常用函数,掌握了这些函数的应用,让你在数据处理时,手到擒来,游刃有余. 目录 一.查找数据位置 s.str.find()和s.str.index()函数 二.数据的查找判 ...

  2. pandas——数据移位、数据转换、数据合并、数据导出和日期数据的处理,时间序列等

    pandas统计分析(下) 本文主要介绍使用pandas进行数据移位.数据转换.数据合并.数据导出和日期数据的处理,时间序列等. 数据移位 数据移位就是在分析数据时,需要移动到上一条,在pandas中 ...

  3. abap 取日期最大_Pointer干货分享:SQL面试50题思路解答与分类整理(下)CASE与日期函数...

    这是POINT小数点的第 368篇文章点点写在前面:SQL技能是数据分析师面试中必不可少的环节,小数点数据社区也给大家提供了练习SQL题目的地方,以下是pointer Yongfan整理的SQL50题 ...

  4. max日期最大值为0_【SQL】SQL面试50题思路解答与分类整理(下)CASE与日期函数...

    题目快速查找索引 阅读指南 上篇 [第一部分]聚合函数(sum/avg/count/min/max) [第二部分]表连接(inner join/left join/right join/full jo ...

  5. pandas使用max函数和min函数计算dataframe日期(时间)数据列中最大日期和最小日期对应的数据行(maximum and minimum date or time row)

    pandas使用max函数和min函数计算dataframe日期(时间)数据列中最大日期和最小日期对应的数据行(maximum and minimum date or time row in data ...

  6. pandas使用query函数查询指定日期索引对应的dataframe数据行(select rows using a single date in dataframe)

    pandas使用query函数查询指定日期索引对应的dataframe数据行(select rows using a single date in dataframe) 目录 pandas使用qu

  7. pandas使用read_csv函数读取文件并解析日期数据列(parse dates)、pandas使用read_csv函数读取文件并将缺失值转化为空字符串

    pandas使用read_csv函数读取文件并解析日期数据列(parse dates).pandas使用read_csv函数读取文件并将缺失值转化为空字符串 目录

  8. pandas使用query函数查询指定日期索引之间对应的dataframe数据行(select rows date index between a certain date interval)

    pandas使用query函数查询指定日期索引之间对应的dataframe数据行(select rows where date index between a certain date interva ...

  9. pandas使用to_datetime函数把dataframe的字符串日期数据列转化为日期格式日期数据列( strings to datetime in dataframe column)

    pandas使用to_datetime函数把dataframe的字符串日期数据列转化为日期格式日期数据列( strings to datetime in dataframe column) 目录

最新文章

  1. swift_041(Swift的@noescape和@escaping)
  2. SparkSQL(Spark-1.4.0)实战系列(一)——DataFrames基础
  3. 老梁观世界“20120713期 癌症女博士的生命箴言”
  4. [机器学习]信息熵信息增益
  5. java calendar赋值_Java常用日期操作
  6. 分块查找(完整案例与C语言完整代码实现)
  7. nsq Android客户端,NSQ的golang客户端简单使用
  8. 软件测试模型-敏捷模型
  9. opa847方波放大电路_我现在用lm358做了一个放大3倍的放大电路,输出大概3~4v,要带负载50Ω。带150的时候没事,但50就波形消失...
  10. 用了很多年的PC端离线版个人知识管理软件PKM2 Manager推荐给大家
  11. three.js加载STL格式模型(vue中使用three.js52)
  12. Linux内核学习开始
  13. MySQL Error 1048 奇遇记
  14. E. Thematic Contests【dp】
  15. PHP - AES 加密解密
  16. 【C语言】for循环常见问题
  17. 【ASP.NET Web】项目实践—网上宠物店8:制作“商品展示”页面
  18. 宜信容器云排错工具集
  19. Openlayers 中code错误编码对应的问题
  20. 大数据项目实训总结_大数据实习报告.doc

热门文章

  1. static char x [ ]=“12345”; 为什么比 static char y[ ]={‘1’,‘2’,‘3’,‘4’,‘5’};长?
  2. 浅谈统一权限管理平台
  3. 【Python】python基础编程回顾(4)
  4. 4月想跳槽的同学,没有更好的选择,可以去美团
  5. 《深入理解Java虚拟机》内存管理机制 部分 读书笔记
  6. 孙宏斌:生意总是有赚有赔,认赌服输(含说明会问答全文)
  7. 职称计算机考试演示,2015职称计算机考试模拟题:演示文稿的放映、打包和打印...
  8. php 算生存曲线,生存曲线比较:KM法及Log Rank检验(实例+SPSS)
  9. Parallels Desktop 16 网络初始化失败
  10. 家事:庆祝父亲60岁生日