python pandas时序处理相关功能详解

作者:ledao 时间:2023-07-25 12:03:18 

创建时间序列

函数pd.date_range()

根据指定的范围,生成时间序列DatetimeIndex,每隔元素的类型为Timestamp。该函数应用较多。


ts = pd.date_range('2017-09-01', periods=10, freq='d', normalize=False)
ts

输出为:


DatetimeIndex(['2017-09-01', '2017-09-02', '2017-09-03', '2017-09-04',
'2017-09-05', '2017-09-06', '2017-09-07', '2017-09-08',
'2017-09-09', '2017-09-10'],
dtype='datetime64[ns]', freq='D'

主要的入参解析:

  • start: 开始时刻,可以是字符串或者datetime类型的值。默认None。

  • end: 结束时刻,可以是字符串或者datetime类型的值,如果指定了长度,即periods,则可不设置。默认None。

  • periods: 时序的长度,整型类型。如果有end,可不设置。默认None。

  • freq: 时序生成的频率,即每隔多少时刻生成一个时序点。字符串类型或者DateOffset类型。默认'D',即天粒度,见上述代码输出。

  • tz: 时区,字符串类型。默认None。

  • normalize: bool类型,没用过,不知道干啥的。

  • name: 设置时序的名称,字符串类型,默认None。

  • closed: 是否包含两边的值。默认None,即两边都保留。

其中,freq的取值可以为如下的符号表示间隔,可以结合符号和数字,如'3d',表示每隔三天记录一个时间点。大小写都可以。


B business day frequency
C custom business day frequency (experimental)
D calendar day frequency
W weekly frequency
M month end frequency
SM semi-month end frequency (15th and end of month)
BM business month end frequency
CBM custom business month end frequency
MS month start frequency
SMS semi-month start frequency (1st and 15th)
BMS business month start frequency
CBMS custom business month start frequency
Q quarter end frequency
BQ business quarter endfrequency
QS quarter start frequency
BQS business quarter start frequency
A year end frequency
BA business year end frequency
AS year start frequency
BAS business year start frequency
BH business hour frequency
H hourly frequency
T, min minutely frequency
S secondly frequency
L, ms milliseconds
U, us microseconds
N nanoseconds

字符串转换为时间戳

pd.to_datetime() 函数可以将表示时间的字符串转换位TimeStamp。


pd.to_datetime('2017-09-01')

输出为:


Timestamp('2017-09-01 00:00:00')

常用的参数:

format: 用来设置字符串的格式,默认如上所示。

时间戳的加减
有时候需要将时间进行增减,可以使用类型:DateOffset。


pd.to_datetime('2017-09-01') + pd.DateOffset(days=10)

输出为:


Timestamp('2017-09-11 00:00:00')

DateOffset常用的参数:

  • months,设置月。

  • days,设置天。

  • years,设置年。

  • hours,设置小时。

  • minutes,设置分钟。

  • seconds,设置秒。

以上可以同时设置,组合使用。


pd.to_datetime('2017-09-01') + pd.DateOffset(seconds=10, days = 10)

输出为:


Timestamp('2017-09-11 00:00:10')

来源:https://www.jianshu.com/p/3e00e5ba9b75

标签:python,pandas,时序,处理,功能
0
投稿

猜你喜欢

  • python中的queue队列类型及函数用法

    2023-09-04 21:04:01
  • python使用turtle绘制分形树

    2022-10-21 12:10:23
  • python和php哪个容易学

    2024-05-05 09:31:52
  • Python Django 通用视图和错误视图的使用代码

    2023-02-20 04:17:47
  • Python + selenium + requests实现12306全自动抢票及验证码破解加自动点击功能

    2021-07-24 04:50:52
  • Vue-cli配置打包文件本地使用的教程图解

    2024-05-22 10:42:05
  • python实现把二维列表变为一维列表的方法分析

    2021-11-30 07:13:44
  • Python面向对象程序设计类的封装与继承用法示例

    2022-12-22 08:34:33
  • python3.3实现乘法表示例

    2023-11-01 11:06:55
  • 分享6个好用到爆的Pycharm插件

    2021-07-07 21:17:59
  • 网页特效文字之—压纹字

    2023-06-26 19:30:06
  • 基于python,Matplotlib绘制函数的等高线与三维图像

    2021-09-06 08:51:33
  • msxml3.dll 错误 '800c0005'终极解决办法

    2009-10-05 18:40:00
  • 详解MySQL主从复制及读写分离

    2024-01-21 12:27:14
  • 基于python实现MUI区域滚动

    2023-11-04 02:38:52
  • Python实现普通图片转ico图标的方法详解

    2023-08-13 07:09:36
  • 深入了解Golang包的获取方法

    2024-03-23 14:34:30
  • Python Web框架Tornado运行和部署

    2021-04-14 09:17:57
  • Golang如何交叉编译各个平台的二进制文件详解

    2024-05-22 17:48:47
  • Python 高级变量之字典和字符串详解

    2021-11-16 19:36:35
  • asp之家 网络编程 m.aspxhome.com