自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 数据分析之路的尽头是创业?

这7年里做了半年的管培生,接着自学转行,继而是4年数据分析师的工作,近2半的时间主要做管理。这一路走来,无论是基层技术工,还是基层管理,我一直以主人翁的心态在做数据,做业务。我们都只能在自己的能量范围内做一些力所能及的事,我相信未来的每一天,我必然还在数据之路上,践行数据价值化、数据驱动业务增长的大道。这一年是人生中的一个转折点,是结束,亦是开始。遵从更好的自己,绽放每个生命的奇迹,这个世界,将会因为有我们一个个精彩的生命,变的更加美好。我想说,我只是遵从了我自己的内心,去做自己想要做的事。

2022-11-22 22:12:44 73

原创 Jupyter notebook转化为html文件,隐藏代码块,生成自动化报告

使用ppt制作周报或月报是一项非常耗费时间的活,不过做业务分析的同学还是免不了要用PPT,其他的自动化报告工具又不会,只能死磕PPT。数据分析师就不一样了,自动化报告可以选择R Markdown或者使用Jupyter notebook与PyEcharts强强联合,生成自动化报告。1.将notebook转化为html文件notebook的前端页面集成了导出文件为html的功能,直接使用这个功能,导出的html文件中呢会包含代码块。2. 隐藏html文件中的code如果是生成自动化报告,代码块就.

2021-04-23 16:35:50 7820 1

原创 方差分析过程&结果解读

一、方差分析1. 方差分析的基本概念单因素方差分析(One Way ANOVA,One Way Analysis Of Variance)是一种统计学假设检验方法,常用于分析单个因素的加入对变量的影响有无显著性。有必要再多费点口舌,解释一下以上描述。通俗一点,方差分析就是指分析单因素的变化给总体带来的变化和波动是否显著的过程。而总体的变化和波动是通过方差、标准差来度量的,问题也就转化为研究单因素的加入,样本对应的总体是否具有不一样的方差。方差分析的目的:检验两个样本对应的总体是否具备方差齐性,即

2021-04-08 14:36:00 33873 3

原创 coderunner:Mac上一个超好用的code编辑&运行工具分享给大家!

Coderunner作为一个代码编辑器,却具备执行脚本的功能。下载途径:解决mac系统python 2.7,安装python3后终端仍旧是调用python 2.7的问题安装python后,发现有一些工具包还需要安装。如果在mac自带的终端中执行这段代码,仍然是python 2.7的版本,安装后势必与coderrunner环境中安装的python3版本冲突。忽然想到了在coderuanner中创建shell script文件,安装缺失的工具包,果然奏效!简直太棒了!推荐code runner,

2021-02-23 13:52:29 1038

原创 python中rolling窗口函数滚动计算一个日期前10天的累计和

论高效利用互联网工具检索信息的重要性。千万不要小瞧了互联网信息检索工具的使用能力,作为一个半生码农的数据分析师,代码又不是天天写,你总是记不住各种功能的函数名称?可以理解,并且很正常!原谅自己吧~但如果情况是:同样的问题你描述不清楚,再如此丰富的信息海洋中,无法快速找到解决问题的参考案例。一个简单的问题,在网上搜呀搜,找呀找,耗费大量时间和精力才能找到一篇好帖子作参考最终解决问题。那你还是要担忧一下自己!背景描述想要构建一个特征,基于每天都值去计算距离当期前x天都一个累计值,之所以说是前x天.

2021-02-22 18:40:37 2144

原创 ValueError: time data ‘nan‘ does not match format ‘%Y-%m-%d %H:%M:%S‘

在尝试把dataframe的一列数据类型由字符串类型转为日期类型时,出现以下报错信息:“ValueError: time data ‘nan’ does not match format ‘%Y-%m-%d %H:%M:%S’”1. 尝试了以下动作,无果data['结清时间'].apply(lambda x :datetime.datetime.strptime(str(x),'%Y-%m-%d %H:%M:%S') if x != np.NaN)2. 参考了以下操作,很棒封装一个函数,在进

2021-01-07 09:51:38 11244 3

原创 Day10:每天刷1道SQL,不信你面试还挂在SQL上

获取所有非manager的员工emp_noCREATE TABLE `dept_manager` (`dept_no` char(4) NOT NULL,`emp_no` int(11) NOT NULL,`from_date` date NOT NULL,`to_date` date NOT NULL,PRIMARY KEY (`emp_no`,`dept_no`));CREATE TABLE `employees` (`emp_no` int(11) NOT NULL,`birth_

2020-08-26 15:38:05 169

原创 SQL面试题-刷题模式

Day6:每天刷1道SQL,不信你面试还挂在SQL上查找所有员工入职时候的薪水情况,给出emp_no以及salary, 并按照emp_no进行逆序(请注意,一个员工可能有多次涨薪的情况)CREATE TABLE `employees` (`emp_no` int(11) NOT NULL,`birth_date` date NOT NULL,`first_name` varchar(14) NOT NULL,`last_name` varchar(16) NOT NULL,`gender` c

2020-08-10 10:49:33 224

原创 Python中plot()画图添加数据标签,显示点对应的数值

创建子图的好处:每个子图可以单独操作,想画啥就画啥各个子图之间可以共享坐标轴,便于同一量纲去比较数值的大小fig,((ax1,ax2,ax3,ax4,ax5,ax6)) = plt.subplots(1,6,figsize=(22,4),sharex=True,sharey=True)##设定子图间距 , left < right, top > bottom, 数字表示窗口大小的比例(如下则子图间距为窗口大小的1%) plt.subplots_adjust(left=0, top=

2020-06-03 10:12:38 33709

原创 Python中Matplotlib如何添加次坐标轴,添加多个图例

由于总量数据过大,不太适合与拆分的维度使用同一坐标轴展示,所以对于总量使用主坐标轴,拆分的细分维度均使用次坐标轴。这是使用同一个坐标轴的结果:知识点1:subplots()plt.subplots()可以创建一张画布和一系列的子图。可以返回画布对象matplotlib.figure.Figure,以及子图的坐标轴对象matplotlib.axes._subplots.AxesSubplot。plt.subplots(2,3,figsize=(10,8))画了一个画布,并且自动按照2行 * 3列

2020-05-27 17:12:18 9227 1

原创 Python中的位置参数(*args)和关键字参数(**kwargs)

在Python中:位置参数:会被打包成元组,元组的元素是不可改变的,会根据元组中元素对应关系直接赋值关键字参数:会被打包成字典,字典就是key-value,会根据关键字及其取值完成对应关键字参数的赋值In [332]: def say_hello_then_call_f(f, *args, **kwargs): ...: print('args is', args) ...: print('kwargs is', kwargs) ...:

2020-05-20 16:41:05 528

原创 Python中的匿名函数Lambda lambda x的用法

使用pandas时经常对dataframe的一列进行特别操作,这时候就会用到lambda来实现。比如:lambda x: x.replace(’ ‘,’’)可以实现对于一列中的每一个字符串元素实现去除空格的处理。lambda xlambda本质上是个函数功能,是个匿名的函数,表达形式和用法均与一般函数有所不同。普通的函数可以写简单的也可以写复杂的,但lambda函数一般在一行内实现,是个非常简单的函数功能体。那么,什么时候需要将函数写成lambda形式?函数功能简单,一句话就可以实现偶而性使用

2020-05-20 15:33:17 13903

原创 数据分析师也要学会写漂亮的Python函数

在编程语言中,写函数就像是制作一个魔术箱,进去一个东西,出来另外一个东西,像是变了个魔术一样神奇。但作为数据分析师,真是不爱写函数,清洗数据?那就按部就班的做就好了,见招拆招,为啥要费脑筋写那个函数呢?写函数的优点结构更清晰,可读性好,降低修改维护成本代码复用性高,可提升效率教你写简单的函数写一个实现数据清洗处理的函数,能够让这些脏脏的字符串,洗白白了输出,显示为整洁的首字母大写,其他字母小写的规整的字符串。# 这是一些待清洗处理的字符串In [245]: strings = [' A

2020-05-20 11:19:22 266

原创 Python中zip实现元素配对压缩、解压缩

zip可以实现多个序列(列表、元组、集合)元素的“配对”,生成一个新的元组列表:In [128]: s1 = ('name','age','school') In [129]: s2 = ('Jack',19,'se') In [130]: zip(s1,s2)

2020-05-18 15:54:27 312

原创 Python中序列函数enumerate()与dict()的巧妙使用

enumerate()是Python内置的序列函数,可以实现对一个序列的迭代。这个序列可以是列表(list),也可以是集合(set),亦可以是元组(tuple)。以下是对元组这个序列的迭代输出。In [122]: s = ('hello','world',2020) In [123]: for i,v in enumerate(s): ...: print(i,v) ...:

2020-05-18 15:24:09 3363

原创 Python中通过help查看对象的方法描述

In [96]: help() Welcome to Python 3.8's help utility!If this is your first time using Python, you should definitely check outthe tutorial on the Internet at https://docs.python.org/3.8/tu

2020-05-18 14:45:38 273

原创 Python日期处理:日期转字符串 & 字符串转日期 & 两个日期相减

Python????️个叫datetime的模块(包),这个模块集成了3个主要的类型:datatime类型: 日期和时间date类型: 日期time类型: 时间1.认识3个主要的日期和时间类型打开Ipython,实践中学习。In [1]: from datetime import datetime,date,timeIn [3]: dt = datetime(2020,5,15,13,58) In [4

2020-05-15 14:47:25 8828

原创 None、Null与空字符‘‘什么区别

1. None表示空无一物,啥也没有存储。编程语言里采用None比如在python中None不是一个保留关键字,只是NoneType对象的一个实例。空就是空,它不是整型,不是浮点型,也不是字符串,就是一个NoneType。所以在使用len(None)时候会报错,因为NoneType没有字符串才有的方法。In [71]: type(None) Out[71]: NoneT

2020-05-13 16:33:12 9913

原创 Python里的%s和%d是什么意思

二元运算符 %1)%是一个二元运算符,在实数运算中用来实现取莫的操作,比如:In [53]: 5 % 2 Out[53]: 12) 除此之外%与格式字符叠加使用,可以实现参数格式化的功能,比如:In [55]: template = '%s is a lovely girl who is %.0f years old, living in %s Pro ..

2020-05-13 15:41:42 8875

原创 字符串前面加个r‘是什么意思

有时候可以看到字符串前面加了一个r‘,那么这个代表什么意思呢?在字符串的最左边加上r,是告诉解释器所有字符按照原本的样子进行解释In [48]: r'12\24' Out[48]: '12\\24'原字符串中有一个反斜杠,输出的是’12\24’,这里的一个反斜杠是转义字符,第二个反斜杠代表原本想要输出的那个反斜杠。如果想要展示反斜杠,必须要再加一个反斜杠进行转义,否则得

2020-05-13 15:07:04 8062

原创 name ‘iterable‘ is not defined 在python中判断一个对象是否可迭代

如果一个对象可迭代意味着可以通过for循环去操作处理它,那么在python中怎样判断一个对象是否可直接迭代?如何生成或将一个对象转化为可迭代的对象呢?1. 判断对象是否是迭代器(iterator)# 列表list对象In [9]: isinstance([1,2,3],Iterable) Out[9]: True# 集合set对象In [12]: isinstance((1,2,3),Iterable)

2020-05-13 13:56:34 2227

原创 dataframe日期按周、按月、按季度聚合

dataframe中的每一列都是一个Series对象,这个Series对象的index默认是从0开始,步长为1进行递增。如果你的dataframe中有一列是日期,对于其他列字段需要按照日期字段进行聚合的话,需要将待聚合列的Series对象index属性修改为该日期字段。关键是这个操作:offline_ratio = custs.offline_ratiooffline_ratio.inde...

2020-05-08 14:12:30 11971

原创 NameError: name ‘datetime‘ is not defined

sql脚本跑出的日期是通过substring()截取出来的,是字符串类型。在dataframe中需要调用日期函数做一个转化,将string转化为dataframe类型。offline.index = custs_to_orders['day_tm'].apply(lambda x:datetime.strptime(x,'%Y-%m-%d'))使用这个语句的前提是from datetime...

2020-05-08 13:41:58 15769

原创 pandas如何在一个Excel文件中写入多个sheet页

要实现这个功能,需要借助于pandas的ExcelWriter()方法,参考如下:from impala.util import as_pandas# 把数据库中表字段写入到Excel文件中便于查看curs.execute("""describe ods.table1""")media = as_pandas(curs)curs.execute("""describe ods.tab...

2020-04-30 15:11:15 6132

原创 “ResultSet”对象没有属性“find_all”,unable to get local issuer certificate (_ssl.c:1108)问题解决

from bs4 import BeautifulSoupimport urllib.requesturl='https://topic.autohome.com.cn/new/home/sos.jsp?isNonCar=0&nonCar=0&brandId=25&seriesId=0&page=1'open_it = urllib.request.urlo...

2020-04-27 09:36:28 1947

原创 Glyph 26426 missing from current font.解决matplotlib画图中文字体乱码问题

1. 问题复现环境:Ipython 3.8import matplotlib.pyplot as plt import pandas as pddata = pd.read_csv('/Users/me/Documents/small_cust.csv') data['first_catg'].value_counts().plot()plt.show() 图是画出来了...

2020-04-18 15:29:52 32348 19

原创 spark sql如何把一列拆分为多行:Lateral view explode

背景介绍比如拿到了每个人吃的食物,并且知道每种食物的卡路里,需要计算每个人的摄入的总卡路里数。怎么计算呢?表p_food name food Lily apple、milk、rice Amy meat、water、 表f_caloriefood Calorie apple 50 milk 100...

2020-04-16 15:18:20 5241 1

原创 Mac中Dbeaver启动时报错:“fail to create java virtual machine”

用的好好的Dbeaver 今天启动时候突然一个报错“fail to create java virtual machine”,除此之外没有其他提示信息了。看到这个信息想起来上周刚在本机上安装了Hadoop,Spark,过程中有新下载了JDK,有可能是Java版本问题。遇到环境问题,也没有诀窍,就是网上搜索各位前辈的解决方案。1. 搜寻解决方案看了几个方案都说要修改myeclipse....

2020-04-11 16:27:47 4413 22

原创 python读取txt文件中的json数据

txt文本文件能存储各式各样数据,结构化的二维表、半结构化的json,非结构化的纯文本。存储在excel、csv文件中的二维表,都是可以直接存储在txt文件中的。半结构化的json也可以存储在txt文本文件中。最常见的是txt文件中存储一群非结构化的数据:今天只学习:从txt中读出json类型的半结构化数据import pandas as pdimport jsonf = o...

2019-10-21 17:16:12 12112 1

原创 如何将SQL查出的结果拼成json串

在机器学习中,特征工程是一个非常重要的环节,特征的好坏直接影响模型的效果。除了用SQL开发一些简单的单值特征,比如每家店铺的流量,每家店铺的销量,这种单维的特征非常常见。在实际工作中,还会有开发一些复杂特征的需求,常见的比如每家店铺在每个城市的广告投入,每家店在每个城市的产出,这里的投入产出指标会需要统计在店铺、城市两个维度下的值。这种情况用怎么实现呢?1. 用SQL拼出你想要的jso...

2019-08-19 17:32:39 12395 1

原创 解决github的SSH认证问题

https://gitlab.geely.com/help/ssh/README#generating-a-new-ssh-key-pair1. 打开Git bash这个bash可不是一个英语单词,而是GNU Bourne-Again Shell的简称,是一个shell提供了人机交互的接口。安装了GitHub 后在开始菜单栏输入git后,自然可以看到Git bash。# 忽略ssl认证g...

2019-08-13 15:26:55 902 1

原创 python连接hive批量补充时间分区特征

1. python连接数据库from pyhive import hiveconn = hive.Connection( host= 'xxx xxx', port= xxx, auth='CUSTOM', username='your user name', password='your password...

2019-08-07 17:20:47 248 1

原创 azkaban调度SQL代码

1. azkaban上新建一个project登录azkaban后,右上角有个Create Project的按钮,点解后录入项目信息。2.上传项目文件前人经验,这里应该上传一个.zip的压缩文件,并且你这个.zip的压缩文件里面不要有文件目录,直接是文件。这个压缩文件里有2个文件,一个是run.sh的脚本,一个是.job的文件。脚本文件中存储一些认证的信息,以及文件目录等信息kl...

2019-07-16 16:54:07 1515 1

原创 Oracle中横表转纵表

本文的横表存储的是特征数据,表的数据结构是经常会变化的,比如添加特征操作。特征表设计为横表操作不灵活,别人在引用特征时也将受到这种变化影响,增加特征后也可能带来数据异常。此外,特征数量庞大之后,选用特征也会及其不便。所以我们考虑将关联得到的横表,转化为纵表进行存储。代码操作的数据库为:Oracle值得注意的是横表转纵表后,为了统一数据类型,一般统一存储为string类型。with t...

2019-06-19 17:13:21 5568 1

原创 oracle中的with as子查询用法

在开发标签或者特征时,需要以基本对象为基础,做许多关联、计算或统计。如果开发的特征数目少,涉及到的表也比较少,可能还可以写一大段关联一气呵成。然而,绝大多数情况下,随着标签涉及到基础数据表的膨胀,数据在关联中也不断膨胀,非常容易出问题。那么如何解决这个问题呢?在oracle中,with as 的子查询就非常好用。标签开发的基本思路是这样的:确定标签领域:比如此次标签或特征是打在user...

2019-06-18 15:45:03 1855 1

原创 oracle中add_months()统计近1个月、近3个月、近6个月

1)获取当前日期首先近N个月,是以当前执行时间为基期的,所以先弄清楚在oracle中如何获取当前日期。select sysdate from dual执行了这条语句后,可以看到返回了一个当前日期注意sysdate不是一个函数,所以后面不要加括号。2)日期的窗口函数如果是月份,在oracle中可以用add_months()函数来实现与基础日期的窗口期。比如以下代码:add_...

2019-06-18 14:30:49 8491 1

原创 深入探讨回归分析的假设条件、散点图以及解决方案

回归分析标志着预测建模的第一步。毫无疑问,回归分析非常容易实现。无论是语法还是其中使用的参数,都没有任何易混淆的。但是,只跑一行代码是无法解决问题的,也不是只看看R² ,MSE值就可以的。回归分析告诉我们的远远不止这些!All models are wrong, but some are useful.——George Box1. 简介在R语言中,通过使用plot(model_name...

2019-05-22 10:14:42 6188 1

原创 hive sql中between and

捣鼓了一下午,发现被复制结果集坑了。哎感觉踩坑踩的像个无知的新手select SUBSTRING(a.CREATED_TIME,0,7),dict_value,count(distinct a.mobile_no) as cluesfrom dcs.NT_TP_P_CUSTOMERS a left join dcs.nt_sys_dictionary d on a.p_customer_f...

2019-05-10 17:25:44 6850

原创 python中多层for循环跳出break与else

代码能力不甚强,只知道break可以跳出其所归属的最小循环体,并且接触到的一般都是小循环结束了,外面嵌套的大循环也就直接结束了,不会有其他操作。直到今天写这个需求,苦苦想了个把钟头才搞对,真是水平不高哈哈、找到了一个值,就即刻写入文件,终止循环所有的都找一遍,如果还是找不到,就写入空值就是这么一个需求,改了半天才改对。小循环里用break来根据条件终止循环,else的作用是把所有值循环...

2019-03-22 16:53:00 5306

原创 机器学习——决策树建模及预测

本篇中将分4步介绍一个简单的决策树预测模型的构建过程,让你对建模过程有初步了解。1. 选择数据集你的数据集中变量太多了,让人摸不着头脑,即便是打印出来也看不清楚。怎样才能把这些庞大的数据集简化为能看得懂的东西呢?在这篇中我们先依据直觉选择几个变量。稍后的篇章中将介绍如何利用统计类技巧优化变量。为了挑选一些特征变量,我们先要看一下数据集中有哪些字段。通过DataFrame的columns属性...

2019-03-12 14:24:53 12261

空空如也

空空如也

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

TA关注的人

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