

Python与SQL对比:处理用户记录相邻的时间差
source link: https://ask.hellobi.com/blog/Matthew112/15643?amp%3Butm_medium=referral
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.

文字标题看起来好拗口...的说...
先来一个主题案例吧,方便大家理解:
我有一家超市,运营两年了,系统存储了所有用户的购买记录,我想要分析一下每个用户进店的时间间隔是怎样的(比如A客户第一次进店与第二次进店间隔5天,第二次进店与第三次进店间隔7天......),咋办呢?(听到这里明白了吗...)
我们用Python的pandas和SQL同时做一下这个需求,互相比较:
具体数据如下:
id是客户ID,time是进店购买的时间
先来一个SQL代码,在MySQL上运行的:
处理结果:
乍眼一看,SQL好强大啊,一行搞定需求,但是语言理解上略过逊色,不好读不好懂。
那么如果用Python的pandas来处理呢:
1.先导入一下包和数据源:
2.按照id和时间排序:
3.groupby与shift组合使用,依据id列将time列进行偏移:
偏移的结果:
4.基于偏移后的dataframe进行两个时间列做差:
做差结果如下:
5.这里会发现结果还是不尽人意,diff列的数值不方便后期计算,那么我们自定义一个函数来搞一下:
最终结果如下:
同样是行列之间,pandas的DataFrame操作更加直观,SQL则更加简练,各有春秋!
<b style="font-size:14px;font-family:"Helvetica Neue", STHeiti, 微软雅黑, "Microsoft YaHei", Helvetica, Arial, sans-serif;">技术没有高低之分,只是使用技术人的水平不同而已,献丑献丑!</b>
个人原创,转载请联系! 个人原创,转载请联系! 个人原创,转载请联系!




本文由马修 创作,采用 知识共享署名-相同方式共享 3.0 中国大陆许可协议 进行许可。
转载、引用前需联系作者,并署名作者且注明文章出处。
本站文章版权归原作者及原出处所有 。内容为作者个人观点, 并不代表本站赞同其观点和对其真实性负责。本站是一个个人学习交流的平台,并不用于任何商业目的,如果有任何问题,请及时联系我们,我们将根据著作权人的要求,立即更正或者删除有关内容。本站拥有对此声明的最终解释权。
Recommend
-
161
写在前面: 如题,就像题目说的需要计算出时间差,虽然不太难,但这个需求经常会在项目中遇到的,我在这边做一下整理,希望能够尽量全的整理出来。有需要的朋友可以做一下参考,喜欢的可以点波赞,或者关注一下,希望可以帮到大家。 本文首发于我的个人blog:obkor...
-
56
请支持正版地址:http://blog.51cto.com/zpf666
-
30
给你一个字符串 s ,「 k 倍重复项删除操作」将会从 s 中选择 k 个相邻且相等的字母,并删除...
-
10
用户从4亿到10亿:Instagram的「相邻用户」增长方法论...
-
10
求无序数组排序后相邻俩数最大差值(思路及详解) | XINDOO 前两天在一个学长面试的时候遇到这样一个题,这里稍微详细说下本文的标题。给你n个任意整数,求排序后相邻两个数之间的最大差值,这里n可能有10^5,整数为任意32位整型。要求求解算法的时间复杂度...
-
4
下拉框选框设置了change监听, 前一个相邻的input元素无法获取值-CSDN论坛多个下拉框绑定同一个on-change事件遇到的坑_绿茶程序...三个下拉框...
-
12
「开源之书·共读」#41 《无需法律的秩序:相邻者如何解决纠纷?》如果我们抱着感恩的心,就会晓得自己的知识不仅来自于古代,也来自于生活的社区,更加来自于互联网,也就是说我们不是一座孤岛,所有的创新发明都得益于他人,那么所谓的自主,完全知...
-
6
#yyds干货盘点# 动态规划专题:不相邻取数 精选 原创 97的风 2022-11-02 18:02:06...
-
3
#yyds干货盘点# 动态规划专题:删除相邻数字的最大分数 精选 原创 97的风 2022-11...
-
10
通过官方文档,可知高亮相邻节点分为两种方法,文档描述并不是很清楚,对刚接触这个库的小白并不是很友好,慢慢总结慢慢来吧 内置的高亮节点 是通过内置的Behavior activate-relations
About Joyk
Aggregate valuable and interesting links.
Joyk means Joy of geeK