自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(22)
  • 收藏
  • 关注

原创 【一点分享】Python数据分析(7):Pandas做统计,比sql更有意思吧。

在前面几篇文章中,已经把大概用到的知识点进行了分享,本文进行4种场景的实战练习。1、日期维表之前的案例,对日期进行过特殊处理。今日,引入日期维表,就不需要那么复杂。可以事先在公共日期维表中实现好,直接引用即可。2、每周的注册用户数用的日期维表的周来关联统计,就不用单独去判别周了,非常方便。3、模拟sql的case_when统计实现还是很巧妙的,以下2种解法都很值得学习,当然还有自定义函数(把lambda拆份出来就行),不在这里演示了。4、用户留存留存,最重要的是理

2021-08-27 20:58:27 184

原创 【一点分享】Python数据分析(6):Pandas的字段操作,lambda函数原来是这样用。

Pandas还有个最常用的操作字段,这样才能把数据清洗干净,为统计分析顺滑使用提供基础。本文分3个部分介绍:修改或新增字段、字段类型转换、总结。1、字段变换(修改或新增字段)1.1 lambda表达式有必要再次补充下lambda表式式的用法,在字段变换中是常用有用的一个操作,需要掌握。1.2 map、apply、applymap、assign参数文章,易执:Pandas教程 | 数据处理三板斧——map、apply、applymap详解,写得很详细。2、字段类型转换

2021-08-27 15:56:38 1397

原创 【一点分享】Python数据分析(5):Pandas行或列合并操作实战,比sql更灵活。

今天第是分享的第5节,分5块:按行合并、按列合并、df之间的关系、统计练习、总结。1、按行合并(sql的union)官方文档 pandas.concat - pandas 1.3.2 documentation1.1 相同列合并1.2 不同列合并2、按列合并(sql的join)官方文档:pandas.merge - pandas 1.3.2 documentation3、df之间的关系(sql的表关系)3.1 一对多或多对一3.2 多对多4、统

2021-08-26 15:45:16 371

原创 【一点分享】Python数据分析(4):Pandas数据基础统计,也有不少技巧。

上一篇文章分享了Pandas的基础查询,看着有点多,熟悉了就是那几条,跟sql一样,越写越活络。本文将分享Pandas的基础统计,可与sql的基础统计对比看看,共2部分:实战练习、总结。1、基础统计实战1.1 简单统计,计数和去重计数1.2 单维度分组统计,并对结果排序1.3 多维度单指标统计,并对结果排序和筛选1.4 多维度多指标统计2、总结(1)pandas的基础统计不难,与np的度量运算结合相得益彰。后面会把复杂的查询引入,就会像之前写的几十上百行的sq

2021-08-25 21:18:51 202

原创 【一点分享】Python数据分析(3):Pandas数据操作,看着比sql更灵活。

前一篇文章已经实现了从Mysql和Excel读取数据到pandas(简称pd)的dataframe(简称df)中,本文将对df进行各种操作,对比sql的实现,以加深理解。文章分为3部分:优化读取Mysql数据、df的查询操作、总结。1、优化读取Mysql数据优化点是:把连接数据库的url不直接显示,配置到参数中,但又可正常使用。1.1 自定义python包创建文件夹pub,在conf.py中直接把url='db连接地址'写入即可,__init__.py暂空。就会有url这个变量了。.

2021-08-25 21:10:45 137

原创 【一点分享】Python数据分析(2):读取Mysql和Excel数据,简单到不敢想象。

本系列Python数据分析,计划按照Mysql数据分析系列的套路和案例,用python演示一遍,学习曲线会更平缓。当然,没有sql基础的朋友,也能按此系列学习Python数据分析。在上一篇文章中,咱们已经把Jupyterlab环境安装好,复习一下此环境的好处:单步执行(选中某部分代码进行执行),过程变量存缓存,方便调试。正始开始案例演示,分3部分,读取Mysql、读取Excel、总结。1、读取Mysql在上篇环境安装文章有已展示过此案例,非常简单。今天咱们把数据读取到dataframe中,可

2021-08-24 22:02:11 342

原创 【一点分享】Python数据分析(1):Jupyterlab搭建,练习Python和Sql的神器。

在之前Mysql专栏分享过程中,一直用的Sequel客户端进行sql编写和说明注解,及时执行的结果不能保存,得写一条sql截图一次,麻烦。而Jupyterlab就可以很好解决这个问题,代码过程与执行结果都会相邻挨着保留,随时可以查看,导出或截图都非常方便。而且,Jupyterlab还天然支持Python环境,学Python甚是方便,单步执行和结果就是亮点。其他的shell等各种语言环境也可以安装插件进行扩展,妥妥的代码神器。1、安装jupyterlab官方文档:https://jupyter

2021-08-24 22:00:19 500

原创 【一点分享】Mysql高级特性:Event定时任务,用作定时调度ETL也很香。

接上篇,ETL的存储过程已经实现,需要手动执行。本文将实现定时自动执行,用Mysql自带的Event定时触发器,仍是熟悉的配方,分三部分总结:理论、实战、总结。1、Event定时触发器1.1 增删改查与存储过程、自定义函数非常相似,不再一一讲解,将有关sql呈现如下:更详细说明,请查看官方文档:https://dev.mysql.com/doc/refman/8.0/en/sql-data-definition-statements.html1.2 定时2种定时方式,每隔多久执行

2021-08-23 16:59:30 192

原创 【一点分享】Mysql存储过程,拿ETL小试牛刀,确实很锋利。

之前的sql3天入门系列,讲过select统计用户维度的报表,每次看结果时都需要写一遍sql或执行一遍sql,要命的是总是变化调整参数,很是头疼,没技术含量。细品,这就是重复的操作,根据条件反射,咱们必须封装,用存储过程来搞定重复的查询统计,并且还可以把结果存起来,随时查看。(当然,为了查看还有更方便的方式,对接到数据平台外化为图表,关注后续文章会有分享。)今天内容直接就是实战,没有理论了。Mysql相关基础请移步至Mysql专栏系列文章(点击查看)。1、rpt报表ETL,v1.1 版本

2021-08-22 21:55:44 372

原创 【一点分享】Mysq高级特性:存储过程,小而美的ETL工具。

此Mysql的学习从最早的3天上手,到近几期的高级特性,逐步靠近实际工作的应用。本文也终于来到ETL工作的门口了(当然有很多其他ETL模式),是非常有意思的工作。存储过程与昨天分享的的Mysql自定义函数相似,文章依然分三部分:存储过程讲解、实战演示、总结。一、存储过程1、增删改查表的数据有增删改查,自定义函数有增删改查,存储过程也同样有增删改查。1.1 增,新建存储过程1.2 查列表,全部存储过程1.3 查定义,存储过程的完整代码内容1.4 删-- 通常.

2021-08-21 22:14:39 251

原创 【一点分享】Mysql高级特性:函数,学会后几百行的Sql变几十行

前述3篇文章已经分享了Mysql的高级特性:窗口函数、wit通用表达式和json函数,本文将继续分享高级特性,自定义函数,分三部分呈现:第一部分,介绍Mysql的自定义函数。第二部分,实战,解决问题。第三部分,总结。一、自定义函数通常编程语言中的函数是必备技能,不管是面向对象还是面向过程,都离不开函数。Mysql中也有函数功能,常用的是内置函数(built-in functions),自定义函数功能也要学会,很实用。1、创建函数下面2个简单的实例找下整体的定义感觉。1.1

2021-08-20 22:47:36 173

原创 【一点分享】数据分析七步法

​01分析目标开展任何事项,目标是最根本的问题。你回想下,自己或同事在没有目标下工作,是啥状态感受。没有目标的数据分析是耍流氓。与需求方未沟通清楚目标,做也是徒劳,大概率会变更需求。判断某人是不是数据分析师,就问他数据分析的首要明确的问题是什么。面试官可以这样考察求职者;求职者也可以拿此判断面试官或其公司情况。02准备数据多数据情况下,需要根据目标去确认数据从哪里获取,在数据库,在excel,还是要去第三方采集。要和业务、产品研发等人员明确好,该提取数据提取,该解析文件解析,...

2021-08-20 13:48:39 252

原创 【一点分享】Mysql新造的轮子太好用了,以前怎么没发现,json函数妙不可言。

上篇文章尝试用with递归解决了数组拆分为多行的问题。今天再次尝试使用json_函数解决。昨天预留的作业放在本文第二部分进行实现。一、json函数1、准备json数据由于原表没有json格式的列,先构造json格式的电影类型字段,如下:2、验证json数据json_valid()、json_length()3、数组拆分前述将字段加工为json格式后,用json函数json_table(),也是非同凡响呀,更简洁,如下:二、作业解答昨天预留了4道题目,按此前

2021-08-19 22:18:46 150

原创 【一点分享】用Mysql分析豆瓣数据,竟有意外的收获,sql还能如此高级。

这两天在精选影视内容,已初步准(爬)备(虫)好了部分数据。(p.s. 对爬虫感觉兴趣的朋友请关注后续文章)按之前的数据分析七步法,下一步是数据处理。本次尝试完全使用Mysql来处理,不借用其他工具。一、数据处理——数组字段拆分上来的第一个难题就是电影的类型字段,是个多值类似数组格式,需要拆分。网上也有很多不同的解决方案,要用到自定义函数、存储教程、临时中间表、json,步骤较长,不易理解。要是有简洁的方法就好了。笔者昨天分享了with使用,正好其中有使用with的递归来解决问题。还记得笔者是

2021-08-19 00:24:49 150

原创 【一点分享】Mysql高级查询:with,让sql不再冗长油腻。

昨日问over()里可以partition by几个字段,order by 几个字段?只要你能理解partition by和order by的组合含义,by几个都可以。今天继续学习新的知识,又是一个新的高级特性,with定义通用表达式,可理解为一个可定义的对象,在sql代码中进行引用。1、使用2、总结with cte极大提升代码可读性,可在sql头部编写;而中间表只能在sql中间被定义;cte和中间表都需要as来给个名称cte可被多次引用;中间表只能被使用一次

2021-08-19 00:17:53 490

原创 【一点分享】Mysql的窗口函数,分析功能从此上一个台阶。

一、理解Mysql8.0开始支持窗口函数,极大增强了Mysql的统计性能,再也不会被Oracle等鄙视了。Mysql8.0还增加了其他实用的高级性能,关注公众号后续文章进行了解。1、使用场景可从两个角度来了解和分辨需要使用窗口函数的场景。(1)要查询的数据有n组性质相同的数据集(订单表可以按品类分成n组、按日期分成n组等),对每组组内的数据都需要做相同的统计计算。比如各品类的销售额前3名的商品分别是?比如各部门出勤率最好的3位员工是?(2)符合以下5类窗口函数的代表的统计意义排序函数

2021-08-19 00:16:29 368

原创 【一点分享】如何确定主表,即a left join b的a表?

a left join b或 b right join a的a表,如何确定,有时也会犯迷糊,导致结果维度缺失。今天分享两个原则:高频的一个原则——维度表维度表去left join事实表或结果表,dim表left join eve表或rpt表。通常的日期维度、地域维度、以及公司的各种业务维度。dim:维度表;eve:事件表;rpt:结果表。这样可以保证维度数据都出现在最终的统计结果中(没有产生数据的多数是null值),不会丢失。此前案例中出现过直接基于事件统计日报,发现有些日期缺失,就是这

2021-08-19 00:15:13 940

原创 【一点分享】数据分析必会的日期维度表,你知道怎么生成的吗?

在数据分析中,日期维表的作用有多重要,无需赘言。日期维表通常不会在OLTP库存在,所以需要数据分析师生成。日期维表的生成方式非常多,只要是程序语言,都能生成。本文,笔者将使用Mysql来生成自然日期(date_type=NA)的日和周维度数据。一、维表结构每个公司的业务周期有各自特点,可个性化定义维度列。笔者定义date_type='NA'为自然日期,周期字段,业务特点的日期类型。二、维表数据示例数据是根据需要生成的,自己完全可定义维度的业务逻辑进行实现。三、维表生成

2021-08-19 00:13:54 595

原创 【一点分享】Sql笔记:3天就可以写出很溜的Sql,飞一样的感觉(第3天)

1、日期维表日期维表的提前生成,请参考后续公众号文章。2 、维表参与统计承接昨天文章的任务,维度表参与统计。将昨天的sql进行改造。3、行转列4、行错位运算5、分析函数6、用户留存7、用户画像标签昨天文章有案例,可再扩展。8、纵表存储标签中间数据上个标签案例,一条sql出了多个标签。实践中,会将标签分别存到中间表,再统一整理为标签大宽表,即行转列。ok,3天的内容已经过完,是否有感觉呢。建议对照sql再执行,直到

2021-08-19 00:11:10 131

原创 【一点分享】Sql笔记:3天就可以写出很溜的Sql,飞一样的感觉(第2天)

一、复杂查询1、按行合并1.1 union1.2 union all2、按列合并,join关联查询2.1 left join2.2 right join2.3 inner join2.4 更多join2.5 主表a left join b on a.f = b.f,此时a为主表;b right join a on a.f = b.f,a还是主表。到底把谁作为主表去left join呢?以谁为视角去查别的信息,这个谁就当作为主表。比如上述

2021-08-19 00:09:51 69

原创 【一点分享】Sql笔记:3天就可以写出很溜的Sql,飞一样的感觉(第1天)

笔者曾经要求新同学第1天要写出12道从易到难的Sql,哪怕背下来都行。现进行改良,3天由浅到深,配上解释,加强理解。以Mysql为例,其他语法类似。第1天:基础查询、简单统计第2天:复杂查询、复杂统计第3天:数据需求实战1、select有时会对表达式进行试算,不用from表也行。-- * 前面不能放字段,*后面可以放字段select ip, * from mid_eve_wkb_user_log;YouhaveanerrorinyourSQLsynt...

2021-08-19 00:04:18 161

原创 【一点分享】有个数据分析师这么评价Sql

Sql是了不起的发明,40多年了????????,比Java、Python还要早,了不起。1974年由Boyce和Chamberlin提出,并首先在IBM公司研制的关系数据库系统SystemR上实现。由于它具有功能丰富、使用方便灵活、语言简洁易学等突出的优点,深受计算机工业界和计算机用户的欢迎。1980年10月,经美国国家标准局(ANSI)的数据库委员会X3H2批准,将SQL作为关系数据库语言的美国标准,同年公布了标准SQL。此后不久,国际标准化组织(ISO)也作出了同样的决定。条条道路通罗马,

2021-08-18 23:58:20 124

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除