Python实现《谁说菜鸟不会数据分析(入门篇)》的案例

这段时间在学习Excel和Python相关内容,Excel数据分析入门有一本《谁说菜鸟不会数据分析(入门篇)》,内容细致,简洁易懂,注重培养分析的思维而不仅仅是告知方法。在学习Python过程中萌发了通过使用Python的方式实现《谁说菜鸟不会数据分析(入门篇)》中对Excel文件的处理的想法,借此提高对Python数据分析的使用,理解数据处理的方式。因为才刚开始接触学习Python和Excel,可能Python有些问题处理方式过于繁琐,不够简洁,只是进行一下尝试。

1. 重复数据处理

有时候数据中会出现重复行,干扰数据分析,这就需要对重复数据进行处理。
剔除数据中重复数据,在DataFrame中主要运用duplicated方法和drop_duplicates方法:
- duplicated方法返回的是一个布尔型的Series,用来只是各行是否重复,如果重复则为True,否则为False。
- drop_duplicates直接返回已经删除了重复行的DataFrame。

默认drop_duplicates方法会判断所有列,只有所有列的值都重复才算重复行,如果仅需要依据某一列或者某几列进行重复项判断。可以添加列名的列表:drop_duplicates([‘K1’])或者drop_duplicates([‘K1’,’K2’])。删除的重复值可以选择保留第一项还是最后一项,添加 keep = ‘last’,会保留最后一个重复值,keep = ‘first’会保留第一个重复值。

Excel文件读取

pandas的ExcelFile类或pandas.read_excel函数支持读取存储在Excel 2003(或更高版本)中的表格型数据。这两个工具分别使用扩展包xlrd和openpyxl读取XLS和XLSX文件。你可以用pip或conda安装它们。
要使用ExcelFile,通过传递xls或xlsx路径创建一个实例,然后用存储在表单中的数据可以read_excel读取到DataFrame

import pandas as pd
xlsx = pd.ExcelFile('E:/Docs/Python/excel_data/ch04/4.2/重复数据处理.xls')
# 这里路径要用'/',否则使用右斜杠'\'会报OSError Invalid argument错误   
frame = pd.read_excel(xlsx,'Sheet1')

如果要读取一个文件中的多个表单,创建ExcelFile会更快,但你也可以将文件名传递到pandas.read_excel:

frame1 = pd.read_excel('E:/Docs/Python/excel_data/ch04/4.2/重复数据处理.xls','Sheet1')
frame1

这里写图片描述

重复数据处理

使用DataFrame的drop_duplicates()进行重复数据的删除

frame_ = frame.drop_duplicates(keep = 'last')
# keep = 'last',会保留最后一个重复值,keep = 'first'会保留第一个重复值
frame_

这里写图片描述

处理数据另存为Excel文件

如果要将pandas数据写入为Excel格式,你必须首先创建一个ExcelWriter,然后使用pandas对象的to_excel方法将
数据写入到其中:

writer = pd.ExcelWriter('E:/Docs/Python/excel_data/ch04/4.2/重复数据处理_处理后.xls')
frame_.to_excel(writer,'Sheet1')
writer.save()

你还可以不使用ExcelWriter,而是传递文件的路径到to_excel:

frame_.to_excel('E:/Docs/Python/excel_data/ch04/4.2/重复数据处理_处理后.xls')

2. 检查数据逻辑错误

逻辑错误是根据数据来源、数据性质等进行判断的,比如年龄出现负值等等。
这里的例子是在多选题中需要选择3项,为0代表未选择,不为0代表选择,所以需要判断每一行数据中不为0的个数是否等于3.
因为原先的xls文件有合并单元格,首先手动将其删除,只留下标题列ABCDEFG和表内容。

frame2 = pd.read_excel('E:/Docs/Python/excel_data/ch04/4.2/检查数据逻辑错误.xls','Sheet1')
frame2_ = frame2.copy()
frame2_

这里写图片描述
DataFrame的loc和iloc方法可以选中行进行计算判断,loc和iloc分别通过索引和整数索引进行选择,ABCDEFG7道题中只能选择3项,用不等于0的值是否是3来短判断,多或者少都是错误的。

# for循环记得for、if、else语句后面都有:
for i in range(len(frame2_)):if (frame2_.loc[i] != 0).sum() == 3:frame2_.loc[i,'检验'] ='正确'else:frame2_.loc[i,'检验'] ='错误'
frame2_

这里写图片描述

3. 字段分列(带分隔符)

在数据源数据中,有时根据需要,需要从某一列数据中提取信息(比如从身份证号中提取出生年月信息)或者对数据进行分割(比如类似2011-01-05的日期,提取年月日信息单独成列)。根据数据的不同分为两种情况,利用字符串的分隔提取方法解决:
1. 需要分列的信息之间有特殊的分隔符,比如逗号、空格等,可以直接用split方法分割;
2. 没有特殊分隔符时,采用对字符串的索引方式,如 对x = ‘spam’;可以使用x[0],x[-1],x[1:3]等进行信息提取

本例是针对英文名进行分割,中间有空格作为分隔符
excel文件比较随意,只添加了数据内容,没有列名,先手动添加列名 name

frame3 = pd.read_excel('E:/Docs/Python/excel_data/ch04/4.3/字段分列.xls','Sheet1')
frame3

这里写图片描述
首先提取需要分列的列,用split()分列,这里的分隔符是空格

frame3_ =  pd.DataFrame((x.split(' ') for x in frame3.name),index=frame3.index,columns=['A','B'])
frame3_

这里写图片描述

4. 字段分列(无特定分隔符)

frame4 = pd.read_excel('E:/Docs/Python/excel_data/ch04/4.3/数据抽取.xls','Sheet1')
frame4

这里写图片描述
字段本质上为字符串,固定的位置可以直接用索引直接选取

frame4['姓'] = pd.Series((x[0]) for x in frame4['姓名'])
frame4

这里写图片描述

5. 字段匹配

在excel中,vlookup是字段匹配搜索的神器,加上INDEX和MATCH函数几乎所向披靡。在DataFrame中,merge是合并两个DataFrame的方法,可以利用on = ‘列名’选择该列进行匹配,还可以选择选择交集、并集、左合并、右合并,功能十分强大
在本例中,员工职位表中有员工的姓名、工号、职务等信息,而在员工个人信息表中缺少职务信息,需要从员工职位表中将职务信息对应添加到员工个人信息表中。选择工号列进行匹配。

frame51 = pd.read_excel('E:/Docs/Python/excel_data/ch04/4.3//字符匹配/员工职位表.xlsx','Sheet1')
frame51

这里写图片描述

frame52 = pd.read_excel('E:/Docs/Python/excel_data/ch04/4.3//字符匹配/员工个人信息表(销售部).xlsx','Sheet1')
frame52

这里写图片描述
需要从《员工职位表》中提取‘职务’信息到《员工个人信息表》中,这相当于两个DataFrame合并,连接键为‘工号’,需要的字段为职务

pd.merge(frame52,frame51[['工号','职务']],on = '工号')

这里写图片描述

6. 简单计算

本质上相当于在DataFrame添加一列,该列由前面列的数据生成,直接两列相乘即可
本例中是计算销售额(运用公式:销售额 = 销售数量 * 单价)

frame6 = pd.read_excel('E:/Docs/Python/excel_data/ch04/4.3//简单计算.xls','Sheet1')
frame6

这里写图片描述

frame6['销售额'] = frame6['销售数量']* frame6['单价']
frame6

这里写图片描述

# 这里销售额已经计算完毕,因为看到表格中还有合计项,顺便联系一下iloc的用法
frame6.iloc[5,1:] = frame6.iloc[0:5,1:].sum()
frame6

这里写图片描述

7. 函数计算

计算平均值和总和直接使用mean和sum函数,因为是计算每行的值,需要设置axis=1。

frame7 = pd.read_excel('E:/Docs/Python/excel_data/ch04/4.3//函数计算.xls','Sheet1')
frame7

这里写图片描述

frame7['季度平均'] = frame7[['一季度','二季度','三季度','四季度']].mean(axis = 1)
frame7['总销售量'] = frame7[['一季度','二季度','三季度','四季度']].sum(axis = 1)
frame7

这里写图片描述

文中所涉及的excel数据文件和Jupyter的ipynb文件放在:
https://pan.baidu.com/s/1_ZfhpUTRoFEEglbqF7AhZA 密码:586r
《谁说菜鸟不会数据分析(入门篇)》的图书需要自己解决。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://xiahunao.cn/news/353252.html

如若内容造成侵权/违法违规/事实不符,请联系瞎胡闹网进行投诉反馈,一经查实,立即删除!

相关文章

《谁说菜鸟不会数据分析》之数据分析

什么是数据分析? 顾名思义,数据分析就是对数据进行分析。 可是,数据分析的真正定义是什么呢? 数据分析是指利用适当的统计分析方法对收集来的大量数据进行分析,将他们加以汇总消化并理解,以最大化地开发…

Python 中的 SOLID 原则

💂 个人网站:【海拥】【摸鱼游戏】【神级源码资源网】🤟 前端学习课程:👉【28个案例趣学前端】【400个JS面试题】💅 想寻找共同学习交流、摸鱼划水的小伙伴,请点击【摸鱼学习交流群】 SOLID 是一组面向对象…

谁说菜鸟不会数据分析(工具篇)

《谁说菜鸟不会数据分析(工具篇)》 基本信息 作者: 张文霖 狄松 林凤琼 出版社:电子工业出版社 ISBN:9787121204098 上架时间:2013-6-14 出版日期:2013 年6月 开本:16开 页码&#x…

谁说菜鸟不会数据分析,不用Python,不用代码,学会这些技能,让你秒变分析大神

作为一个菜鸟,你可能觉得数据分析就是做表格的,或者觉得搞个报表很简单。实际上,当前有规模的公司任何一个岗位如果没有数据分析的思维和能力,都会被淘汰,数据驱动分析是解决日常问题的重点方式。 很多时候&#xff0…

《谁说菜鸟不会数据分析》学习笔记 第一章总览 第二章数据分析思路

网上的信息太琐碎了,根本没搞懂什么是数据分析方法什么是数据分析方法论,所以找了一本比较简单的书来系统学习一下,本来打算粗略看完,但是觉得这本书知识还是不错的,所以决定在未来一周把这本书用心学一下。 这本书是基…

《谁说菜鸟不会数据分析》学习笔记 第八章数据分析报告

第8章 数据分析报告 8.1 什么是数据分析报告 8.1.1 数据分析报告是什么 数据分析报告是用于研究事物的现状、问题原因,并得出结论,提出解决方案的一种应用文体。 是决策者认识事物、了解事物、掌握信息的主要工具之一。 8.1.2 数据分析报告的原则 &…

谁说菜鸟不会数据分析(入门篇)----- 学习笔记4(数据分析方法)

1、数据分析方法 数据分析作用与对应的分析方法 数据分析作用基本方法数据分析方法现状分析对比 对比分析、平均分析、总和评价分析 原因分析细分 分组分析、结构分析、交叉分析、杜邦分析 漏斗图分析、矩阵关联分析、聚类分析 预测分析预测 回归分析、时间序列、决策树、神经网…

《谁说菜鸟不会数据分析》学习笔记 第五章数据分析

第五章 数据分析 5.1 数据分析方法现状分析5.1.1 对比分析法5.1.2 分组分析法5.1.3 结构分析法5.1.4 分布分析法5.1.5 交叉分析法5.1.6 RFM分析法5.1.7 矩阵关联分析法5.1.8 综合评价分析法 原因分析5.1.9 结构分解法5.1.10 因素分解法5.1.11 漏斗图分析法 预测分析5.1.12 趋势…

产品读书《谁说菜鸟不会数据分析(工具篇)》

系列二:谁说菜鸟不会数据分析(工具篇) PPT查看1 、PPT查看2 第一章 : 高效处理数据 查询语法: SELECT 字段1,字段2,字段3 FROM 表 WHERE 条件1 AND 条件2 AND 字段 IN(条件1,条件2,条件3) O…

《谁说菜鸟不会数据分析》之探索性数据分析

探索性数据分析是运用一些分析方法从大量的数据中发现未知且有价值信息的过程。 分类 探索性数据分析可分为以下4种: * RFM分析 * 聚类分析 * 因子分析 * 对应分析 RFM分析 RFM分析是针对销售行为的一种分析方法,在SPSS中有对应的分析模块&#…

产品读书《谁说菜鸟不会数据分析(入门篇)》

PPT查看1 PPT查看2 思维导图下载 ppt下载 什么是数据分析?怎么样才是数据分析的思维?数据分析的流程有哪些?常用的数据方法又有哪些?工具呢?可以学习的网站有哪些?我觉得《谁说菜鸟不会数据分析&#…

谁说菜鸟不会数据分析,不用Python,不用代码也轻松搞定

作为一个菜鸟,你可能觉得数据分析就是做表格的,或者觉得搞个报表很简单。实际上,当前有规模的公司任何一个岗位如果没有数据分析的思维和能力,都会被淘汰,数据驱动分析是解决日常问题的重点方式。 很多时候&#xff0c…

【HTML】第 1 节 - HTML 初体验

欢迎来到博主 Apeiron 的博客,祝您旅程愉快 。 时止则止,时行则行。动静不失其时,其道光明。 目录 1、缘起 2、HTML 概念 2.1、HTML 定义 2.2、标签语法 3、HTML 基本骨架 4、标签的关系 5、注释 6、总结 1、缘起 最近在学习微信小程…

《谁说菜鸟不会数据分析(入门篇)》总结

一、数据分析方法论 营销方面:4P、用户使用行为、STP理论、SWOT 管理方面的理论模型:PEST、5W2H、时间管理、生命周期、逻辑树、金字塔、SMART原则等 PEST(宏观环境分析)P(political)政治环境(社会性质、执政党性质…

《谁说菜鸟不会数据分析》

一、数据分析概况 (一)、数据分析是“神马”? 1.数据分析是指用适当的统计分析方法对收集来的大量数据进行分析,将他们进行汇总、理解并消化, 以求最大化的开发数据的功能 ,发回数据的作用。 2.数据分析…

谁说菜鸟不会数据分析(SPSS篇)----- 学习笔记

SPSS变量尺度跟数据类型百分位值:将数据从小到大排序,用n-1个数据点将数据分成n等份集中趋势:反映数据向其中心值凝聚的程度,对数据一般水平的概括性度量离散趋势:反映数据偏离中心值的程度,是衡量集中趋势…

谁说菜鸟不会数据分析 | 学习笔记 (全)

一.前言 数据分析是为了提取有用信息和形成结论而对数据加以详细研究和概括总结的过程 数据分析的目的是把隐藏在一大批看似杂乱无章的数据背后的信息集中和提炼出来,总结出所研究对象的内在规律。在实际工作中,数据分析能够帮助管理者进行判断和决策&…

java SSM 互助旅游管理系统myeclipse开发mysql数据库springMVC模式java编程计算机网页设计

一、源码特点 java SSM 互助旅游管理系统是一套完善的web设计系统(系统采用SSM框架进行设计开发,springspringMVCmybatis),对理解JSP java编程开发语言有帮助,系统具有完整的源代码和数据库,系统主要采…

元宇宙,现状,路径与未来

现在,如果你还不知道元宇宙这个词,那应该直接投诉村村通工程怎么还没修到乡下..…事实上,自从半年前,当已经头发斑白的路边大爷摇在躺椅上一边喝着茶一边问我什么是元宇宙时,我就察觉到元宇宙在各种人士的吹捧下已经火…

Linux 如何查看 隐藏文件大小,某个文件大小,文件夹大小

du -sh dir or file du -sh 后面跟目录或者文件,你要看哪个文件或者文件夹的大小,后面就跟上名字就好,可以写n个。 我截图的后面就是一下看了四个文件夹的大小 命令是简单,记录一下,免得下次用的时候,又…