
数据分析
文章平均质量分 77
数据分析,是未来不可或缺的技能,尽量用浅显易懂的语言导出数据背后隐藏的信息,也希望自己可以慢慢由数据分析的“工具人”变身吧!
小白掌柜
Atypical programmer
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
Leetcode题解之database(十四)584.寻找用户推荐人 - 你应该知道的五种MySQL解法
力扣584题的五种MySQL解法原创 2023-04-13 19:15:00 · 997 阅读 · 0 评论 -
数据分析面试、笔试题汇总+解析(六)
MySQL查询语句优化面试题原创 2023-02-26 19:54:21 · 485 阅读 · 0 评论 -
Pandas 根据一张DataFrame的两列数据对另一张DataFrame的多列值进行批量替换
背景掌柜最近在做王者荣耀2022KPL春季赛的赛事数据分析,下表kpl是从官方数据平台获取到的2022KPL春季赛常规赛近500场的赛事数据:这里大家可以很明显的看到team_bh和team_ph两列下面都是一堆数字,其实它们分别代表的是王者荣耀里面的各个英雄。下表code就是掌柜整理的2022KPL春季赛常规赛登场的所有英雄和对应的数字编码:问题将kpl表中的team_bh和team_ph两列数据进行拆分,分别得出每个战队ban(禁用)的四位英雄和pick(选用)的五位英雄;对拆分后的禁用原创 2022-04-25 19:07:06 · 4611 阅读 · 1 评论 -
UnicodeDecodeError: ‘utf-8‘ codec can‘t decode byte 0xb1 in position 0: invalid start byte的解决办法
今天在读取一个从国家统计局下载的csv表格的时候遇到如上报错:一看就知道是字符编码问题,但是到底要编码成哪种格式才是正确的呢? 掌柜搜了一下相关问题的解决方案,发现高赞给的答案是下面这个:于是掌柜尝试过后发现并不能完全解决问题。。。????在Provinces这一列还是出现的乱码。。。然后掌柜突然反应过来,Province这一列都是中文,一般中文编码都是用的gbk,所以应该是encoding = ‘gbk’ 才对吧。带着这样的想法填入后,再次运行,成功加载出全国各省近5年的GDP数据!总结:所原创 2022-01-04 20:06:16 · 11659 阅读 · 2 评论 -
“利用ARIMA模型对时间序列进行分析的经典案例(详细代码)”一文中会遇到的问题总结(二)
最近又有好些朋友来咨询掌柜关于使用ARIMA模型对时间序列进行预测的????这篇博客 中遇到了一些问题,这里掌柜再次收集大家的问题来一一解答。PS: 本博客假定大家已经具备ARIMA模型的基础知识!!!问题汇总如下:怎么判断我的数据是否适合ARIMA模型呢?得到的时序预测图是负值,明显不对。怎样保证为正值?想要最后预测的数据,而不是预测的平稳数据,怎么拿到?想获取预测点的值应该怎么做的,没有API接口呀,可以告知一下吗?不需要做ADF检验吗?怎么确定ARMA的最优模型?还原到原始时间序列原创 2021-11-24 17:39:37 · 7157 阅读 · 5 评论 -
三一数据应用大赛之逾期风控预测比赛的总结
前段时间参加了三一的这个逾期风控预测比赛(以下简称“风控”),今天看私榜成绩发现居然还提升了27名!????(虽然依然菜的一批????,离入围决赛差了0.03。。。)不过有进步就还是很惊喜!因为公榜还只是64名????。现在对整个比赛进行一个回顾。(PS: 由于官方保密规则,这里不会提供原始数据, 谢谢理解!)(PPS:这里主要是思路的整理,欢迎大佬分享更优的思路或解法;如果发现有错误的地方,欢迎指出。 ????)比赛整个流程????:1. 明确赛题任务2. 数据清洗3. EDA数据探索4原创 2021-07-02 16:50:13 · 718 阅读 · 6 评论 -
利用np.select对excel 每一行数据的某几列(多列)进行条件筛选并生成新一列数据的方法
还是最近的那个项目,最后收尾阶段遇到这样一个问题:根据表格每一行某几列的数据进行条件筛选后并生成新的一列数据。像下面这个示例一样????:需要根据每一行的“ 生日”,“地址”,“保险”是否有值来生成新的一列字段,比如叫“完整度”字段。就拿王佳来说,因为他的 “保险”字段是空值,但是“地址”和“生日”有对应的值。那么最后新字段 “完整度”这里就要填入 “比较完整” 四个字。同理,李明的“完整度” 就应该是“很完整”;胡曦就是“不完整”;最后章杰就是“很完整”。看起来是个比较简单的多列条件筛选问题,原创 2021-03-11 21:19:46 · 2182 阅读 · 2 评论 -
pandas将excel中多行多列单元格含有多个值拆分为一对一单行显示的方法(explode函数)
最近接了一个私人项目,今天在处理项目中数据的时候遇到这样的一组数据(数据已经处理过,只为示例):看掌柜用红色框住的两处,可以发现该多行单元格里不止一个值在里面,而且该数据集不止一列是这样的情况。。。如果你熟悉pandas的用法,肯定会第一时间说???? “用explode方法”。没错,确实可以用该方法处理单元格里面含有多个值的情况;但是官方只给出了处理单列的示例!!!(我们可以回顾一下pandas的官方exploded的用法和相关示例操作????)看到没,官方的解释是该方法可以复制索引值并转换像列原创 2021-02-26 20:19:43 · 2943 阅读 · 0 评论 -
2020 CSDN的年度总结
2020马上要结束了, 看到大家都在回顾2020,掌柜这里也做个年度总结。最初掌柜开始写博客就是为了记录自己解惑的日常,没想到在2020居然有不少朋友关注了本博客,惊喜!虽然博客上面标记的是 “码龄3年”,但是真正开始全面接触编程是在2019年开始。所以只有两年,不过掌柜却通过不断的写博客回顾掌握了不少知识,这种每天都有新知识或解决一个bug的感觉真的不要太好????,2021希望继续保持下去。那么2020都学了哪些知识?这里按时间顺序(以季度来划分) 进行一个盘点。第一季度(1-3月)这段时间原创 2020-12-30 20:49:16 · 1100 阅读 · 0 评论 -
牛客SQL实战的18道简单题+Leetcode非VIP的12道简单题 总结
随手刷过力扣数据库题和牛客的SQL实战题,今天就对两边的简单题做个总结,让我们一起来看看对于SQL简单题常考的有哪些知识点以及题型吧。PS:如果分类区有漏掉的题,欢迎评论区补充,谢谢!常考知识点一:两表或多表连接,即????考察JOIN 、LEFT JOIN、RIGHT JOIN、INNER JOIN 的用法和区别。题型有:(PPS: 下面提到的题都是其中一种解法会用到这个知识点;此题也有其他解法可用 )Leetcode ???? 175. 组合两表Leetcode ???? 181.原创 2020-11-04 19:04:43 · 492 阅读 · 0 评论 -
Pandas如何跳过第一行和第一列将数据写入csv
今天刚好遇到这个情况,解决后来记录一下。操作很简单,只需要使用pandas的iloc方法即可。情景复现:已有数据的csv表格如下表格已有第一行表头和第一列数据,现在要在黄色框住区域添加新的数据。那么问题就变成如何跳过第一行和第一列将数据写入csv? 的问题。下面看具体操作(掌柜就不bb,直接上代码啦):import pandas as pddata = pd.read_csv('xxx.csv') data.iloc[0, 1:] = train #这里要写入的数据随意举例原创 2020-10-20 18:55:39 · 11929 阅读 · 1 评论 -
关于《滴滴数据仓库指标体系建设实践》中“如何搭建指标体系”部分的思维导图总结
刚刚读了一篇关于《滴滴数据仓库指标体系建设实践》????的文章,不得不说一下这是目前掌柜看到最全面的一篇讲指标体系搭建的文章????。这里分享过来,大家有空都可以读读全文看????。文章中主要谈论了5点:1. 指标体系是什么?2. 为什么要搭建指标体系?3. 如何搭建指标体系?4. 怎么管理指标体系?5. 指标体系产品化。这里掌柜主要对第三点 如何搭建指标体系? 进行了一个思维导图的总结, 希望对各位有帮助:参考资料????:《滴滴数据仓库指标体系建设实践》...原创 2020-10-16 18:50:37 · 1065 阅读 · 0 评论 -
打开Jupyter notebook出现了大大的500:Internal Server Error的解决办法
前提:云服务器操作系统为 CentOS 7.5 64位Jupyter notebook 作为容器远程运行在Docker中起因:今天打开Jupyter notebook 打算进行数据分析的时候,突然出现这么大大的一个500命令????:掌柜就琢磨这是怎么一回事,怎么昨天才好好的今天就报错?后来突然想起来昨天有进行过安装包升级的操作。。。难道又是安装包的兼容性导致的?错误排查过程:为了验证这一想法,掌柜去docker里面找到该容器的日志进行查看,输入如下命令:docker原创 2020-09-14 19:00:15 · 12289 阅读 · 8 评论 -
如何读取大型(超1G)的CSV文件到一个DataFrame里面的方法
这两天掌柜遇到要一次读取多个大型(都基本超过1G)的CSV文件到单个DataFrame里面的操作,这里做个总结,希望对有同样需求的朋友有帮助!下面直接看案例吧????除了一个小于1G的csv文件,其余都大于1.3G????。。。好了,现在掌柜要一次读取这10个大型csv文件到DataFrame中。第一种:使用chunksize模块。...原创 2020-09-13 20:46:50 · 10933 阅读 · 2 评论 -
Jupyter notebook读取大型csv文件遇到The kernel appears to have died. It will restart automatically的错误原因排查
在用pandas读取大型(都几乎是超1G)的csv文件,发生了如下报错:搜了一下,第一种发生原因:安装包版本问题。所以解决办法:pip install -U numpy(好一部分朋友表示这个有用)conda install nomkl(少部分朋友表示这个有用)conda update anaconda/ mkl(一部分朋友表示这个有用)但是这些都不适用掌柜这里,后来又查了一下。第二种发生原因:容器分配的内存不足导致。 解决办法:修改容器内存配置。docker update原创 2020-09-08 20:38:14 · 3162 阅读 · 3 评论 -
TypeError: fit_transform() takes 2 positional arguments but 3 were given的解决办法
今天在用ColumnTransformer方法对数值变量和非数值变量进行合成转换的时候,掌柜选择对其中的类别特征用LabelEncoder()方法,结果出现报错如上????。但是换成OneHotEncoder(独热编码)就成功运行。于是疑惑 为什么会出现这样的情况? 一搜发现Stackoverflow上面也有同样疑问的朋友,结合两位答主回答:发现两个主要的原因为什么不适合用LabelEncoder():因为LabelEncoder()的transformer是用来编码目标变量(y)(可参见官方原创 2020-08-20 20:38:47 · 19900 阅读 · 0 评论 -
记录一次关于 No module named“ xgboost“的排错过程以及另类解决办法
还记得之前掌柜不是刚刚安装了Jupyter notebook来远程访问,解决了本地容易出现Jupyter安装包环境冲突的问题。然后今天运行一个预测模型的时候用到了Xgboost这个,就华丽丽地报错 “没有Xgboost模块包?于是一查发现,拉取的Datascience-notebook镜像确实没有Xgboost包。。。这就尴尬了,既然缺少了,那么就安装Xgboost即可解决。但是,重点来了,一开始掌柜去终端安装了Xgboost:看上面显示的也是成功安装Xgboost,但是当掌柜重新运行刚刚的程序时,原创 2020-08-18 20:31:28 · 9067 阅读 · 11 评论 -
腾讯云服务器中搭建Docker+Anaconda环境来实现本地远程访问Jupyter Notebook+数据分析
起因:因为觉得在Windows系统的本地配置Anaconda总是会遇到各种环境冲突的问题以及有时候出现电脑不在身边想远程跑一个程序的情况,索性换了电脑后就直接在一直吃灰中????的腾讯云服务器中搭建了Docker+Anaconda环境,实现本地可远程访问Jupyter Notebook并进行各种操作????(比如数据分析????),如下图:(上图试验了一下pandas的使用????)(下图随手在sklearn官网找了个“线性回归”的案例来运行????)(跟官网的运行结果一致, 说明安装的都原创 2020-08-13 18:28:11 · 1232 阅读 · 0 评论 -
初次使用Python连接Redis报错: 由于目标计算机积极拒绝,无法连接。的解决办法
初次使用Python连接Redis的时候突然报错如标题:额。。。回头又重看了一遍刚刚自己写的代码,没有错啊?怎么就无法连接了???后来翻看一番谷歌,才发现一个尴尬的问题。。。上面????报错的原因是因为Redis服务没有启动。。。 换句话说就是还没有安装Redis服务。。。自然就没法连接了????。好了,问题找到了,解决的办法也有了。来到GitHub下载能在Windows系统下运行的Redis服务:Redis-x64-3.2.100.zip(PS:不是Windows系统的请到官方自行下载符合你原创 2020-05-27 20:22:03 · 6005 阅读 · 0 评论 -
Leetcode题解之database(四)185. Department Top Three Salaries
今天要解的题目是????:185. Department Top Three Salaries(部门工资排前三的员工)这题考察的知识点????:两表连接JOIN的使用以及子查询此题思路一????:既然要查部门工资排前三,那么我们要知道有哪些部门?这里就要使用JOIN连接两表得到各个部门信息,然后再在各部门中降幂排列出工资排前三的员工信息,这里就要用到子查询建立一个新表来跟原始表进行对比。(这也是官方的解法思路)...原创 2020-03-31 19:08:06 · 343 阅读 · 0 评论 -
数据去重的各种方法汇总(三)
Pandas去重DataFrame接上篇,这篇就剩最后的用Pandas对Dataframe里面的数据去重,这里也有两种方法,可以直接看官方文档(但是掌柜觉得其实就是一种方法,因为第一种只是显示哪些重复。。。):使用duplicated方法,它会返回一个布尔向量,其长度为行数,表示行是否重复,但是并不会删除重复数据。来看实例:import pandas as pdimport num...原创 2020-03-27 19:03:08 · 2884 阅读 · 0 评论 -
数据去重的各种方法汇总(二)
接上文,上篇讲了Python列表和字典的去重方法,本篇主要总结Excel和MySQL的去重方法。Excel去重解法一,直接使用“删除重复值”按钮,下面看示例和图解步骤:先选中你要删除重复值的那一列数据,然后再按照上图????的步骤走。接着就是确认你要删除的重复值数据范围(一列还是多列):最后就是删除后的确认最后我们查看删完重复值的数据:是不是很简单????。当然这里还有其他方法...原创 2020-03-26 18:27:56 · 1149 阅读 · 0 评论 -
数据去重的各种方法汇总(一)
这几天多次遇到数据去重的问题,所以打算整理一下几种不同类型的数据去重的方法(因为掌柜现在主要是数据分析方向,所以这里主要汇总Python列表、数据库的MySQL以及Pandas的Dataframe)。首先我们来看Python列表去重看下面这个例子:在这里插入代码片...原创 2020-03-23 22:12:08 · 2451 阅读 · 0 评论 -
Leetcode题解之database(一)183. Customers Who Never Order
从今天开始每天都记录解一道Leetcode数据库的题,把它所使用的方法、思路、考察知识点以及最优解写下来。废话不多说,今天要解的是183题:没有下单的客户名字。题目链接在这里:???? Customers Who Never Order首先看这题要考察的知识点:...原创 2020-03-18 18:12:07 · 348 阅读 · 0 评论 -
大众点评前650家咖啡店的数据分析(三)分析篇
(接上篇)上篇掌柜分析了人均(mean-price)、地区(area)以及点评数(review-num),下面接着分析推荐菜(recommend)、评分(shop-num)以及多个变量之间的关系。先看推荐菜(recommend),掌柜统计了一下出现频率最高的10个饮品:结论五:在这650家咖啡店的数据里面,成都人民最爱点的咖啡就是拿铁????,其次是焦糖玛奇朵和澳白(Flat White),第...原创 2020-03-12 16:06:02 · 2114 阅读 · 3 评论 -
大众点评前650家咖啡店的数据分析(二)分析篇
根据之前获取的数据我们进行了如下分析。首先看单变量的人均消费,通过describe方法可以看出来是成都的整体咖啡店人均消费是45(以成都的工资来看有点贵):于是掌柜又直接可视化所有人均消费,人均消费多数在100以下,极个别超过500,最贵的是700+???(是不是会觉得奇怪,怎么会有一杯700的咖啡?????)所以掌柜又对超出100的咖啡店数据进行了一个查看:可以看出来这些都基本是西餐厅...原创 2020-03-12 00:26:30 · 2795 阅读 · 2 评论 -
大众点评前650家咖啡店的数据分析(一)爬虫篇
趁着疫情期间不能出门,于是掌柜的就继续在家捯饬代码。之前看到有个写了关于成都火锅店的数据分析,掌柜的看完后觉得想弄个咖啡店(因为喜欢喝咖啡☕),说干就干。结果在开头就碰钉子,大众点评的反爬措施不得不说一句:“厉害????!” 之所以这么说是因为发现他们家的数据是不开F12看着都正常,一开就是全是下面这样:然后查看多个咖啡店的信息都是如此,后来搜索后知道这就所谓的字体反爬!!!大众点评采用的反爬措施就...原创 2020-03-11 19:14:01 · 2889 阅读 · 25 评论 -
Pyecharts更改地图大小+安装多个地图包的方法
这两天在弄Pyecharts画地图的时候发现,虽然可以画出地图,但是地图中间那块都重叠在一起了,看起来不舒服。于是搜了一下官方文档看如何更改Map的大小,一开始以外是is_roam属性:后来发现并不是。。。这个是设置鼠标的缩放和平移。接着往下翻文档的时候又发现了一处:这才是掌柜需要的地图缩放方法: zoom = xxx (改成你想要的数字,数字越大,地图就会放大相应倍数,反之亦然)。...原创 2020-03-09 22:04:24 · 5758 阅读 · 5 评论 -
TypeError: can't multiply sequence by non-int of type 'float'的解决办法
这几天在画人均消费的可视化图时总是遇到问题,报错是:TypeError: can’t multiply sequence by non-int of type 'float’看字面意思很好理解,就是解析的时候遇到非整数的浮点数导致不能进行相乘的运算,所以出错是因为数据类型不对,因此解决办法就是转换数据类型!于是掌柜就去查看Excel表格中数据列的数据类型。打开Excel表格显示说这一列数...原创 2020-02-28 12:56:50 · 92693 阅读 · 2 评论 -
Attributeerror: 'worksheet' object has no attribute 'insert_cols'的解决办法
这几天在做大众点评的数据分析项目,在转换地址为经纬度坐标后想把数据插入原始表格,使用如下代码却报错:Attributeerror: ‘worksheet’ object has no attribute ‘insert_cols’???觉得奇怪,明明掌柜就是按照官方教程的步骤走的啊,怎么会报错?于是又开始谷歌一下,发现一些解法,但是并没有效。。。就在掌柜快要再次陷入迷雾中的时候,突然看到st...原创 2020-02-25 12:32:07 · 24002 阅读 · 1 评论 -
由换jupyter notebook的主题引发的一部debug的连续剧(三)
上篇说到最后爆出bug。。。到后台服务的连接没能建立, 我们会继续尝试重连, 请检出网络连接… 接着发挥谷歌的优势找到解决办法。就是把tornado降级为4.5.3pip install tornado==4.5.3然后终于正常连接上了:打开之前的文件准备继续编程,点击了运行命令后:没有正常出结果,而是一直在运行,于是我去看jupyter notebook的后台,发现这样一个新的b...原创 2020-02-20 19:01:15 · 535 阅读 · 0 评论 -
由换jupyter notebook的主题引发的一部debug的连续剧(二)
因为疫情原因,导致一直没机会更新上次的博客续集,现在又有时间了,继续更新这部debug连续剧的续集。上次说到掌柜好不容易把主题换掉了,但是打开后发现咋是光秃秃的一个页面?里面的文件去哪儿了???还有工具栏咋没显示。。。根据官方文档的解释,可以写如下命令,让工具栏显示出来:jt -t 你要换的主题名 -N -T然后重启即可生效。接着把默认的文件路径换成你自己希望存放的文件路径,文件夹一定要...原创 2020-02-15 18:10:57 · 1517 阅读 · 4 评论 -
由换jupyter notebook的主题引发的一部debug的连续剧(一)
重要的事情说三遍!没事不要随意使用升级命令(–upgrade)对 jupyter notebook的各种包!!!重要的事情说三遍!没事不要随意使用升级命令(–upgrade)对 jupyter notebook的各种包!!!重要的事情说三遍!没事不要随意使用升级命令(–upgrade)对 jupyter notebook的各种包!!!好了,现在回到主题这里,因为看jupyter notebo...原创 2020-01-21 14:54:47 · 454 阅读 · 0 评论 -
Python读取本地较大文件(出现Memory Error)的解决办法以及总结
因为要读取从大众点评爬下来的一些数据,所以在文件有点大的情况下就造成jupyter notebook在读取的时候直接卡死,出现memory error的情况。那么如何解决这样的问题呢?掌柜经过一番探索,终于找到解决的办法,先写上解决的代码:with open('你要读取的文件', 'r',encoding='utf-8') as f: for line in f: re...原创 2020-01-15 20:22:33 · 14817 阅读 · 0 评论 -
Kettle连接MySQL报错:错误连接数据库 [mysql] : org.pentaho.di.core.exception.KettleDatabaseException的解决办法
在Windows系统里面安装Kettle后打算连接MySQL的时候突然报错:错误连接数据库 [mysql] : org.pentaho.di.core.exception.KettleDatabaseException:Error occurred while trying to connect to the databaseDriver class ‘org.gjt.mm.mysql.Dr...原创 2019-12-27 21:39:23 · 37301 阅读 · 24 评论 -
如何使用MySQL对数据进行清洗--详解其中遇到的各种问题
最近在学陈旸老师的专栏SQL必知必会里面学到如何用SQL对数据进行清洗这一节时,在实操的时候遇到了一些问题,这里记录一下其中对各种问题的解决办法,希望对后面学习的朋友也有帮助!首先第一步就是导入数据集,陈老师是直接用的Navicat 工具将 泰坦尼克号数据集的csv 文件导入到 MySQL 数据库中,但是作为小白的我觉得还是用MySQL直接导入更能锻炼自己,于是放弃Navicat,转用了MySQ...原创 2019-12-19 19:30:58 · 8654 阅读 · 0 评论 -
填坑The MySQL server is running with the --secure-file-priv option so it cannot execute this statement
刚刚上午解决了Access Denied的问题,下午受上午解决问题的思路启发,结果很快就解决了关于MySQL8.0版本以上的文件导入权限问题!!!相信大家都在初次导入外部文件到MySQL的适合遇到了这个问题吧:ERROR 1290 (HY000): The MySQL server is running with the --secure-file-priv option so it can...原创 2019-12-13 22:01:02 · 4638 阅读 · 33 评论 -
因为一个MySQL权限问题引发的填坑之一(ERROR1045:Access Denied for user 'root'@'localhost' (using password:YES))
我觉得我应该改名字叫填坑掌柜,本来只是改个MySQL导入文件的权限问题,结果引发了一系列的踩坑,填坑过程… 好吧,还是开始正题,我们开始填坑第一个:ERROR1045(28000):Access Denied for user ‘root’@‘localhost’ (using password:YES)这个问题出现的原因:这个出现的原因其实有好几种:是因为之前初始化导致密码失效了。所...原创 2019-12-13 16:06:24 · 556 阅读 · 4 评论 -
填坑 “NotSupportedError: Authentication plugin 'caching_sha2_password' is not supported”的曲折过程+解决办法
又是因为在做数据分析的实战项目时候发生了一系列的踩坑、填坑过程(不止标题上面两个,限于字数),于是随手记录下来希望后面的朋友能避开!!!因为项目是用Python连接MySQL来进行数据分析的,所以一开始的步骤就要连接MySQL,这里采用的是SQLALchemy这个框架,于是当我写好这段代码运行的时候,提示报错为:没有“mysql。。。”于是就去anaconda里面安装了这个,重新运行,发现出...原创 2019-12-06 19:11:26 · 6848 阅读 · 10 评论 -
记一次因在anaconda上面安装imblearn包而引发的一系列踩坑过程(二)
接上回,已经满足了安装imblearn的前提条件了,但是再次去Anaconda Prompt里面安装还是报错了,只是这次是另一个问题:Solving enviroment: failed with initial frozen solve.Retrying with flexible solve.去Anaconda的 navigation里面安装也是报错:再次谷歌一下,发现好几个博客都说...原创 2019-11-22 21:06:08 · 3030 阅读 · 8 评论