首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

用SQL计算用户连续登录天数

上次我们根据用户创建账号和登录日志进行了《用SQL进行用户留存率计算》,今天我们继续用这份用户登录日志来计算用户连续登录天数。 1....《『数据分析』pandas计算连续行为天数几种思路》 《利用Python统计连续登录N天或以上用户》 今天,我们用SQL来进行本次操作,大致分为以下几步: 数据去重 SELECT DISTINCT...role_id, $part_date date FROM role_login 进行用户id分组并按照日期进行排序(获取排序序号,窗口函数) SELECT role_id, date...sort FROM ( SELECT DISTINCT role_id , $part_date date FROM role_login ) temp_1 再用登录日期和排序序号进行差值计算...后续我们会持续分享SQL和Python操案例哈,敬请期待!

2.8K30

交通-地铁客流量python时间序列预测

题目要求中可知,我们所需要输出预测结果只有“日期”,“TRADE_ADDRESS(刷卡地点编号)”和“预测客流量”三种数据。这意味着很多所给字段可能是无用。...这时开始继续分析数据: ? 该函数能提取相应TRADE_ADDRESS时间序列数据,及每天平均连接数。 ? 绘图结果如下,可以看出有存在异常天数。 ?...所以需要写如下函数将异常日子过滤掉,此处过滤策略是:对每月特定时间段天数数据求均值与标准差,然后将均值与标准差落在10%分位数以下和90%分位数以上日子去除。 ? 去除后序列如下: ?...这样,就完成了建立模型前置工作。 建立模型 数据都已经准备好,可以开始着手模型构建了。因为地铁人流具有连续性特征,我们使用ARMA来对预测进行一定修正,模型如下: ?...通过计算得到,该时序模型置信区间落在(2,0),因此我们时间序列模型p,q数值取值分别取2和0作为参数。 ? 结果图上来看,对于时间序列趋势预测还算不错,但仍存在部分偏差。

3.4K44
您找到你想要的搜索结果了吗?
是的
没有找到

PySpark SQL——SQL和pd.DataFrame结合体

导读 昨日推文PySpark环境搭建和简介,今天开始介绍PySpark第一个重要组件SQL/DataFrame,实际上名字便可看出这是关系型数据库SQL和pandas.DataFrame结合体,...:这是PySpark SQL之所以能够实现SQL中大部分功能重要原因之一,functions子类提供了几乎SQL中所有的函数,包括数值计算、聚合统计、字符串以及时间函数等4大类,后续将专门予以介绍...Window:用于实现窗口函数功能,无论是传统关系型数据库SQL还是数仓Hive中,窗口函数都是一个大杀器,PySpark SQL自然也支持,重点是支持partition、orderby和rowsBetween...三类操作,进而完成特定窗口聚合统计 注:这里Window为单独类,用于建立窗口函数over中对象;functions子模块中还有window函数,其主要用于对时间类型数据完成重采样操作。...、datediff求日期差等 这些函数数量较多,且与SQL中相应函数用法和语法几乎一致,无需全部记忆,仅在需要时查找使用即可。

10K20

掌握pandas时序数据分组运算

pandas分析处理时间序列数据时,经常需要对原始时间粒度下数据,按照不同时间粒度进行分组聚合运算,譬如基于每个交易股票收盘价,计算每个月最低和最高收盘价。...图1 2 在pandas中进行时间分组聚合 在pandas中根据具体任务场景不同,对时间序列进行分组聚合可通过以下两类方式实现: 2.1 利用resample()对时序数据进行分组聚合 resample...原始意思是「重采样」,可分为「上采样」与「下采样」,而我们通常情况下使用都是「下采样」,也就是从高频数据中按照一定规则计算出更低频数据,就像我们一开始对每日数据按月汇总那样。...,譬如我们以2日为单位,将closed设置为'right'时,第一行记录开始计算所落入时间窗口时,其对应为时间窗口右边界,从而影响后续所有时间单元划分方式: ( AAPL .set_index...index不是日期时间类型,也可以使用参数on来传入日期时间列名实现同样效果。

3.3K10

(数据科学学习手札99)掌握pandas时序数据分组运算

图1 2 在pandas中进行时间分组聚合   在pandas中根据具体任务场景不同,对时间序列进行分组聚合可通过以下两类方式实现: 2.1 利用resample()对时序数据进行分组聚合 resample...原始意思是重采样,可分为上采样与下采样,而我们通常情况下使用都是下采样,也就是从高频数据中按照一定规则计算出更低频数据,就像我们一开始对每日数据按月汇总那样。   ...,就像下面的例子那样: import pandas as pd # 记录了2013-02-082018-02-07之间每个交易日苹果公司股价 AAPL = pd.read_csv('AAPL.csv...图4   而通过参数closed我们可以为细粒度时间单位设置区间闭合方式,譬如我们以2日为单位,将closed设置为'right'时,第一行记录开始计算所落入时间窗口时,其对应为时间窗口右边界,...图5   而即使你数据框index不是日期时间类型,也可以使用参数on来传入日期时间列名实现同样效果。

1.8K20

完整数据分析流程:Python中Pandas如何解决业务问题

数据背景为了能尽量多地使用不同Pandas函数,我设计了一个古古怪怪但是实际中又很真实数据,说白了就是比较多不规范地方,等着我们去清洗。数据源是改编自一家超市订单,文末附文件路径。...,我们便可以开始Pandas操该部分内容。...当然,还是那句话,这个在操中需要与业务明确,或结合业务场景确定。RFM建模完成数据清洗及特征构造后,就进入建模分析环节。...受限于篇幅,本文仅对数据分析过程中Pandas高频使用函数方法进行了演示,同样重要还有整个分析过程。如果其中对某些函数不熟悉,鼓励同学多利用知乎或搜索引擎补充学习。同时也欢迎加饼干哥哥微信讨论。...更多Pandas函数使用说明,可查询中文文档本文算是数据分析流程基础篇,计划会再整理一份进阶篇,涉及机器学习流程、以及更多特征工程内容,同样会以业务落地实战方式进行介绍。

1.6K30

最近面试太难了。

最近有位同学面试了几家,分享了一些觉得有些难度SQL面试题:比如会让你用SQL实现行转列和列转行操作、用SQL计算留存、用SQL计算中位数、还有如何统计用户最大连续登录天数?...SQL 8.0窗口函数 实现思路: 对用户ID和登录日期去重 对每个用户ID按照日期顺序进行编号 将登录日期减去编号对应天数,使连续日期转换为同一天 将连续日期转换为同一个日期之后就可以按照这个字段分组...,这里以第一个为准;如果需要获取全部最大日期可以使用rank或dense_rank窗口函数,可以保证天数一致时排名一致。...) 前面方法使用是SQL 8.0窗口函数,但在低版本sql5.0中并没有窗口函数,如果面试官提出不让用窗口函数,应该怎么办呢?...下面我们用sql窗口函数实现思路,用Pandas实现一遍。

1.1K32

基于机器学习场景,如何搭建特征数据管理中台?

1、存储和计算必须是高性能; 2、对离线特征支持要与在线保持一致性; 3、训练得到模型要支持端预估; 4、支持单行和时序特征; 5、预估服务支持分布式高可用。...离线阶段可以通过读分布式存储然后通过划窗来获取,AI特征管理中台中存储组件包括一个实时特征时序数据库,通过这个时序数据库可以获取在线窗口数据,然后实现一个高性能模型评分服务。...这种特征可以通过SQL窗口函数来获得,我们称之为穿越特征,也就是在特征计算时是不应该引用当前行以后数据,因为在真实线上预估中无法获取比当前行以后数据。...计算性能也有很多优化:1、优化SparkWindow实现,支持 CodeGen 函数以及跨表窗口计算;2、同一进程内内存编译优化,充分利用 Java 编译器优化生成高性能 byte code;3、支持特征级别的异常隔离...上面提到都是计算核心组件,再说说实现高性能、高并发、时序优化存储核心——自研全内存分布式时序数据库。为什么是时序数据库?

3.2K30

特征工程|时间特征构造以及时间序列特征构造

,多个时间序列数据集构造特征时需要先进行分组再计算。...如果每条数据不是一条训练样本,时间变量提取出来特征需要进行二次加工(聚合操作)才能作为训练样本特征使用。 例子:用户交易流水数据中交易时间。...由于每个用户交易流水数量不一样,从而导致交易时间提取出来特征数据不一致,所以这些特征不能直接作为训练样本特征来使用。...我们需要进一步进行聚合操作才能使用,如先从交易时间提取出交易小时数,然后再统计每个用户在每个小时(1-24小时)交易次数来作为最终输出特征。...2)对时间变量进行条件过滤,然后再对其他变量进行聚合操作所产生特征 主要是针对类似交易流水这样数据,用户角度进行建模时,每个用户都有不定数量数据,因此需要对数据进行聚合操作来为每个用户构造训练特征

3.2K20

Python时间序列分析苹果股票数据:分解、平稳性检验、滤波器、滑动窗口平滑、移动平均、可视化

pandas.date_range 是一个函数,允许我们创建一系列均匀间隔日期。...pandas.DataFrame.rolling 允许我们将数据拆分为聚合窗口,并应用诸如均值或总和之类函数。...在交易一个典型例子是使用50天和200天移动平均线来买入和卖出资产。 让我们计算苹果公司这些指标。请注意,在计算滚动均值之前,我们需要有50天数据。...趋势可以是确定性,是时间函数,也可以是随机。 季节性 季节性指的是一年内在固定时间间隔内观察明显重复模式,包括峰值和低谷。...函数返回一个带有季节性、趋势和残差属性对象,我们可以系列值中减去它们。

58700

数据驱动!精细化运营!用机器学习做客户生命周期与价值预估!⛵

数据科学工具库速查表 | Pandas 速查表图解数据分析:入门精通系列教程上述信息中最重要3列是:客户ID、销售交易日期、销售金额,当然大家也可以在后续建模中囊括更多丰富信息(如商品类别等)...这将使我们能够跟踪客户进行了多少交易以及交易发生时间。 我们还可以保留截止日期开始计算这些指标的做法,因为以后会很方便。...我们把每个客户首次交易以来天数也加到信息中。...first_purchase = age.groupby(customer_id_column)[date_column].min().reset_index() # 获取截止第一次交易之间天数...假设数据年初(最左侧)开始,我们选择一个频率(例如,一个月)遍历数据集构建未来 (f) 标签,也即下图红色 f 块。

50241

Zipline 3.0 中文文档(三)

(1246) 当只提供时间规则而没有日期规则时,将schedule_function参数视为时间规则。(1221) 在 schedule 函数中保护交易开始和结束边界条件。...不再使用基准索引,现在使用交易日历来填充环境中交易日。移除extra_date字段,因为与基准列表不同,交易日历可以生成未来日期,因此不需要为当前交易日期添加。...(1246) 当提供时间规则但没有日期规则时,将schedule_function参数视为时间规则。(1221) 在 schedule 函数中保护交易开始和结束边界条件。...(1246) 当提供时间规则而没有日期规则时,将schedule_function参数视为时间规则。(1221) 在 schedule 函数中保护交易开始和结束边界条件。...如果你使用分钟数据运行,那么这将计算那些天数分钟数,考虑提前收盘和当前时间,并在这些分钟集合上应用变换。returns不接受任何参数,将返回给定资产日回报率。

50020

一场pandas与SQL巅峰大战(四)

第二篇文章一场pandas与SQL巅峰大战(二)涉及字符串处理,窗口函数,行列转换,类型转换等操作。...第三篇文章一场pandas与SQL巅峰大战(三)围绕日期操作展开,主要讨论了日期获取,日期转换,日期计算等内容。 本篇文章一起来学习常见应用实例:如何在SQL和pandas计算同环比。...数据样例如下所示,从左到右依次表示,id,日期,当日销售额,数据周期2019-11-012019-12-31。公众号后台回复“对比四”,即可获取本文全部代码和数据。 ? ?...回到上面的思路2,我们在前面的学习中知道,Hive中有窗口函数支持查询当前行前n行数据,可以实现同样效果。...在pandas中,还有专门计算同环比函数pct_change。

1.9K10

『为金融数据打标签』「1. 三隔栏方法」

下面代码展示如何计算日波动率。 代码不能更简单。函数接收两个参数,第 1 个 df 是 DataFrame,第 2 个是 span0指数加权平均窗口天数。...我们定义 ti,1 = 第一次触碰隔栏时点 r(ti,0, ti,1) = 开始第一次碰隔栏时段内收益 通常我们有 ti,1 ≤ ti,0+ h 关系 当第一次碰到竖直隔栏,用等号 = 当第一次碰到水平隔栏...当等于 0 时,表明不设定隔栏,那么隔栏点位就设定为 NaN 第 12 - 13 行代码在每一个窗口都运行,即每一个起始日它 15 天之后竖直隔栏对应日期计算每天收益率。...打标签 该函数计算出根据每个窗口收益正负带标住 +1 或者 -1。 第 5 行计算出起始价格。第 6 行计算出终止价格。...最后,本贴代码可看出 Pandas 重要性了吧。

1.7K30

浅谈pandaspyspark 大数据ETL实践经验

一个kettle 作业流 以上不是本文重点,不同数据源导入导出可以参考: 数据库,云平台,oracle,aws,es导入导出实战 我们数据接入以后内容开始谈起。 ---- 2....4.1 统一单位 多来源数据 ,突出存在一个问题是单位不统一,比如度量衡,国际标准是米,然而很多北美国际习惯使用英尺等单位,这就需要我们使用自定义函数,进行单位统一换算。...比如,有时候我们使用数据进行用户年龄计算,有的给出是出生日期,有的给出年龄计算单位是周、天,我们为了模型计算方便需要统一进行数据单位统一,以下给出一个统一根据出生日期计算年龄函数样例。...").dropDuplicates() 当然如果数据量大的话,可以在spark环境中算好再转化pandasdataframe中,利用pandas丰富统计api 进行进一步分析。...配置ftp----使用vsftp 7.浅谈pandaspyspark 大数据ETL实践经验 ---- ----

5.4K30

特征工程系列:时间特征构造以及时间序列特征构造

,多个时间序列数据集构造特征时需要先进行分组再计算。...如果每条数据不是一条训练样本,时间变量提取出来特征需要进行二次加工(聚合操作)才能作为训练样本特征使用。 例子:用户交易流水数据中交易时间。...由于每个用户交易流水数量不一样,从而导致交易时间提取出来特征数据不一致,所以这些特征不能直接作为训练样本特征来使用。...我们需要进一步进行聚合操作才能使用,如先从交易时间提取出交易小时数,然后再统计每个用户在每个小时(1-24小时)交易次数来作为最终输出特征。...2)对时间变量进行条件过滤,然后再对其他变量进行聚合操作所产生特征 主要是针对类似交易流水这样数据,用户角度进行建模时,每个用户都有不定数量数据,因此需要对数据进行聚合操作来为每个用户构造训练特征

1.1K40

特征工程系列:时间特征构造以及时间序列特征构造

,多个时间序列数据集构造特征时需要先进行分组再计算。...如果每条数据不是一条训练样本,时间变量提取出来特征需要进行二次加工(聚合操作)才能作为训练样本特征使用。 例子:用户交易流水数据中交易时间。...由于每个用户交易流水数量不一样,从而导致交易时间提取出来特征数据不一致,所以这些特征不能直接作为训练样本特征来使用。...我们需要进一步进行聚合操作才能使用,如先从交易时间提取出交易小时数,然后再统计每个用户在每个小时(1-24小时)交易次数来作为最终输出特征。...2)对时间变量进行条件过滤,然后再对其他变量进行聚合操作所产生特征 主要是针对类似交易流水这样数据,用户角度进行建模时,每个用户都有不定数量数据,因此需要对数据进行聚合操作来为每个用户构造训练特征

5.5K42

『数据分析』pandas计算连续行为天数几种思路

类似需求在去年笔者刚接触pandas时候也做过《利用Python统计连续登录N天或以上用户》,这里我们可以用同样方法进行实现。...图1:案例数据 以上图中数据来算,我们可以看到1月21日-1月26日空气质量连续污染持续了6天。 不过,在实际数据处理中,我们原始数据往往会较大,并不一定能直接看出来。...求连续污染持续天数 结合上次《利用Python统计连续登录N天或以上用户》案例,我们这里再提供1种新解题思路,合计2种解题思路。 以下解法来自小明哥和才哥 2.1....图4:筛选空气质量污染数据 步骤2:新增辅助列(辅助列可以不用加到原数据t上) 这里逻辑大概如下: 辅助排名列(按照时间顺序排序)为间隔天数 然后用时间字段(time)与间隔天数求差值得到一个日期...图10:思路2解法2小明哥结果 以上就是本次全部内容,其实我们在日常工作生活中还可能遇到类似场景如:计算用户连续登录天数计算用户连续付费天数计算南方梅雨季节连续下雨天数等等!

7.3K11
领券