python中时间序列数据的一些处理方式

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python中时间序列数据的一些处理方式相关的知识,希望对你有一定的参考价值。

参考技术A

datetime.timedelta对象代表两个时间之间的时间差,两个date或datetime对象相减就可以返回一个timedelta对象。
利用以下数据进行说明:

如果我们发现时间相关内容的变量为int,float,str等类型,不方便后面的分析,就需要使用该函数转化为常用的时间变量格式:pandas.to_datetime

转换得到的时间单位如下:

如果时间序列格式不统一,pd.to_datetime()的处理方式:

当然,正确的转换是这样的:

第一步:to_datetime()
第二步:astype(datetime64[D]),astype(datetime64[M])

本例中:

order_dt_diff必须是Timedelta(\'0 days 00:00:00\')格式,可能是序列使用了diff()
或者pct_change()。

前者往往要通过\'/np.timedelta\'去掉单位days。后者其实没有单位。

假如我们要统计某共享单车一天内不同时间点的用户使用数据,例如

还有其他维度的提取,年、月、日、周,参见:
Datetime properties

注意 :.dt的对象必须为pandas.Series,而不可以是Series中的单个元素

有关Sql中时间范围的问题

背景

有时候需要利用sql中处理关于时间的判别问题,简单的如比较时间的早晚,判断一个时间是否在一段时间内的问题等。如果简单将时间判断与数值比较等同,那就会出现一些问题。

处理方式

处理Sql时间范围的问题有两种比较方式。

当前时间

select to_char(sysdate,yyyy-mm-dd hh24:mi:ss) as Nowtime from dual; 
//2020-04-02 16:25:42

1、将日期转换为字符串再比较

select sysdate nowtime from dual where to_char(sysdate,yyyymmdd hh24:mi:ss) between 20200401 and 20200403;
//02-APR-20,时间范围是2020-04-01 00:00:00 至 2020-04-03 00:00:00
select sysdate time from dual where to_char(sysdate,yyyymmdd) between 20200402 and 20200402;
//02-APR-20,时间范围是2020-04-02 00:00:00 至 2020-04-02 24:00:00 

2、将字符串转化为日期再比较

select sysdate nowtime from dual where sysdate between to_date(20200401,yyyyMMdd) and to_date(20200403,yyyyMMdd);
//02-APR-20,时间范围是2020-04-01 00:00:00 至 2020-04-03 00:00:00

注意:如果不在字符串中指定时间则转换的时间默认为0点,所以前后日期一致则时间间隔为0。

select to_char(to_date(20200402,yyyyMMdd),yyyyMMdd hh24:mi:ss) nowtime from dual;
//20200402 00:00:00

 

以上是关于python中时间序列数据的一些处理方式的主要内容,如果未能解决你的问题,请参考以下文章

python中时间序列数据的简单(但大)读/写

R中时间序列数据的滑动时间间隔

标准化 bigquery 中时间序列数据条目之间的时间

R中时间序列数据的拆分应用聚合

Python处理时间序列数据

Elasticsearches Timelion是Kibana中时间序列的可视化工具