Pandas时间戳与时间差

目录

时间戳

时间戳构造 

时间戳序列生成 

 时间戳序列的索引与切片

使用布尔条件获取时间戳子序列

使用 索引切片获取时间戳子序列

使用dt对象获取时间戳子序列;dt对象详解

时间差

时间差生成

生成时间差序列

补充


 

 

时间戳

时间戳构造 

import pandas as pd
pd.Timestamp('2023/02/10')

输出:

Timestamp('2023-02-10 00:00:00')
t = pd.Timestamp('2023/02/10 09:10:20')
(t.year,t.day,t.month,t.hour,t.minute,t.second)

输出:

(2023, 10, 2, 9, 10, 20)

时间戳序列生成 

pd.date_range(start,end,freq,periods)

使用pd.date_range() 可以生成连续时间间隔的时间戳序列。参数有start,end,freq和periods,分别代表起始时间,终止时间,时间间隔,时间戳个数。

date = pd.date_range('2023/02/01','2023/02/10',freq='2d')
date

输出:

DatetimeIndex(['2023-02-01', '2023-02-03', '2023-02-05', '2023-02-07',
               '2023-02-09'],
              dtype='datetime64[ns]', freq='2D')

 

pd.to_datetime() 

 使用pd.to_datetime()生成时间戳。能把一列时间戳格式对象转化为datetime64类型的时间戳序列。参数详解:https://philosophy.blog.csdn.net/article/details/124846876?spm=1001.2014.3001.5502

date = pd.to_datetime(['2023-02-01', '2023-02-03', '2023-02-05', '2023-02-07',
               '2023-02-09'])

 

输出:同上 

 

 时间戳序列的索引与切片

使用布尔条件获取时间戳子序列

df = pd.DataFrame({'time':['2023-02-01', '2023-02-03', '2023-02-05', '2023-02-07',
               '2023-02-09'],'number':range(1,6)})
df[df.time < pd.Timestamp('2023-02-05')]
df[df.time < '2023-02-05'] #获取时间小于于2023-02-05时间戳的数据

输出

 

720f3a7d400c4148b562fd905715958b.png 

 

 

使用 索引切片获取时间戳子序列

df1 = df.set_index('time',drop=False) #设置时间戳索引
df1.loc['2023-02-01':'2023-02-04',:] #切片

输出:

9e1e243a9b844365be2cb55e5b6db20b.png

 

使用dt对象获取时间戳子序列;dt对象详解

获取每个月第一天日期的数据

#使用dt对象获取时间戳子序列
idx = pd.Series(df1.index).dt #获取时间戳的dt对象
df1[idx.is_month_start.values]

输出:

4b1aec0bbe3c401cbee0befd191ec765.png 

 

时间差

时间差由两个时间戳相减得出

pd.Timestamp('20230213')-pd.Timestamp('20230211')

 输出:

Timedelta('2 days 00:00:00')

时间差生成

时间单位参数有weeks、days、hours、minutes、seconds、milliseconds、microseconds、nanoseconds. 

pd.Timedelta(days=1,minutes=25)

输出:

Timedelta('1 days 00:25:00')

 

生成时间差序列

和date_range()用法相似

pd.timedelta_range('1 days',periods=5) #生成连续5个时间差

输出:

TimedeltaIndex(['1 days', '2 days', '3 days', '4 days', '5 days'], dtype='timedelta64[ns]', freq='D')

 pd.to_timedelta()支持时间差序列转换,类型为timedelta64[ns]

补充

时间差序列支持与标量乘法运算、与时间差加减法和除法运算、与时间戳加减法运算。

 

  • 3
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

黄昏中起飞的猫头鹰

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值