当前位置: 首页 > news >正文

python读取的数据怎么变成数据框数据_利用python进行数据分析

数据分析的基本步骤包括:

1、提出问题

2、理解数据

3、清洗数据

4、构建模型

5、数据可视化

默认环境使用Anaconda软件,python3语言,win10系统

在这里使用朝阳医院18年销售数据作为案例

v2-9e85d2a48a4e93bb938a54e6477e9d7b_b.jpg

1、提出问题

假如我们要得到以下指标:

月均消费次数、月均消费金额、客单价、消费趋势

2、理解数据

2.1 安装一个读取excel文件的依赖包:xlrd(如非第一次操作,请跳过)

v2-1fab13819925d57c439fd5e9a1d77106_b.jpg

打开后输入命令:conda install xlrd

v2-e21b6950cfd23e382d94ec30673d63a5_b.jpg

等待其结束就好

2.2 将数据信息导入jupyter目录(如非第一次操作,请跳过)

v2-f13c27155eaa9b37022cea0e8fa9a61f_b.png

点击“Upload”找到对应文件上传即可

2.3读取数据

v2-efb416823aeb3165e24d97d150ab2266_b.jpg

打印前五行:

v2-9bca2f06dcb7b94ee9b6d79ec85384e3_b.jpg

行数、列数:

v2-01775b51dd8f10aa762c59bafec3f672_b.jpg

查看列的数据类型:

v2-b2ad981dd8bee1a55ea914ec7dabfd34_b.jpg

3、数据清洗

数据清洗步骤包括:

1、选择子集

2、列名重命名

3、缺失数据处理

4、数据类型转换

5、数据排序

6、异常值处理

下面我们逐一来看

3.1 选择子集

v2-f095bc1479cfadb21b377d2569ed0e87_b.png

注:根据实际应用场景判断是否有选择必要,本操作暂无必要,故跳过此步骤。

3.2 列名重命名

v2-4d619d778d38c0a0cd994070121d80cd_b.jpg

可以看到列名“购药时间”变成了“销售时间”。

inplace默认为False,数据框不变,创立一个新的改动后的数据框

inplace=True,则是对现有数据框进行改动

3.3 缺失数据的处理

v2-1ae3d1918aa31ecab6d9970aa40a24cd_b.jpg

v2-22721628302f8b9005d081f6ca4e9b8d_b.jpg

可以看到删除后数据变少了。

一般面对缺失数据的情况有两种解决的思路,一种是删除单条缺失数据,第二种是当缺失数据过多时,建模插值补充数据。根据实际业务场景,销售时间和社保卡号均不能为空,否则单条数据不能用来进行判断,因此删除单条销售时间或社保卡号为空的数据。

python数据缺失值有三种:

1、pandas函数中使用浮点值NaN(Not a Number)表示缺失数值。

2、pandas函数采用了R语言的编程管理,将缺失值称为NA(not available 不可用)

3、python内建的None值在对象数组中也被当做NA来处理。

综述,缺失值为:NaN、NA、None

常用过滤缺失数据的方法有两种:

1、pandas.isnull和布尔值索引手动过滤

2、dropna函数,在数据框上使用dropna,它会返回数据框中所有的非空数据和它的索引值。

这里使用第二种。

3.4 数据类型转换

v2-ac934f861ca323a334855c3ad810eab2_b.jpg

因为在导入数据框的时候,默认将所有数据的类型相同,但显然这并不符合现实情况。如图。

v2-5fc87b96bcc0bb25b4d14cbbfb93cd12_b.jpg

根据需要,这里对“销售数量”、“应收金额”、“实收金额”这三个列的数据转换类型。如图。

v2-e1edd77aa1254aedbbf3938ddc666ee5_b.jpg

然后,对“销售时间”这列的数据进行处理。

首先这里需要了解分割字符串的方法,通过空格将字符串分为两个部分。如图。

v2-894ce529e86ea951bbf19ed732ad7fb3_b.jpg

然后就可以取出想要的一部分的值。如图。

v2-84d775a7c5d9fbf1a355de61355a5cfa_b.jpg

由于我们要对数据框中“销售时间”整个列进行处理,所以先要定义一个进行这样操作的函数。如图。

v2-cf376377ecbc387ee99cf43152a40d97_b.jpg

检查一下dateSer的值。如图。

v2-99dafb13564c9ae4e8caafac5f8302f8_b.jpg

确认无误之后,使用定义的函数进行操作。如图。

v2-0646b62e2773919657d0f02709f7afec_b.jpg

清洗过后,再次打印查看结果。

v2-7eee0fc14002a22a0390a1eb27bbdc8e_b.jpg

成功~

3.5 数据排序

by:按哪几列排序

ascending=True 表示升序排列,

ascending=True表示降序排列

na_position=True表示排序的时候,把空值放到前列,这样可以比较清晰的看到哪些地方有空值

根据实际业务场景,按销售日期进行升序排列。如图。

v2-c50ab00b23ed46d59cef232e7293cee1_b.jpg

3.6 异常值处理

v2-bf8f78cb650e10bb41cfb944ff423e6a_b.jpg

根据实际应用场景,销售数量肯定为正数,所有数据框内数据部分出现错误。现在要把错误数据找出来并删除。

v2-a95a76dc026eff91fdd1cd980d9a6139_b.jpg

这时候再来看一下指标描述情况。如图。

v2-7cd96bc367a59114b526c460e51b2b11_b.jpg

看不出异常了。

到这里数据清洗结束。

4、构建模型

我们先把之前提出的问题拿过来,并逐一处理。

1、月均消费次数

2、月均消费金额

3、客单价

4、消费趋势

4.1 月均消费次数

月均消费次数 = 总消费次数 / 月份数

获取总消费次数和月份数两个值。如图。

v2-74e07fd3edca8947245ad56c3c69a84a_b.jpg

结论:

v2-e9a9b7384858cf88881a0690e2ff3459_b.jpg

4.2 月均消费金额

月均消费金额 = 总消费金额 / 月份数

v2-0adda6902742029918df6f4e5dd3e62e_b.jpg

4.3 客单价

客单价=总消费金额 / 总消费次数

v2-93c9637275d58950aa888061e39c1f85_b.jpg

4.4 消费趋势

数据可视化方面呢,未完待续hh

相关文章:

  • java 对象创建过程_JAVA创建对象的几种方式
  • ajax获取json数据并显示_ajax请求echarts圆饼图动态显示数据方法
  • ajax req.getsession() 获取不到_ajax上传文件后台接收文件对比
  • python中ls是什么_python实现windows下的ls函数
  • python程序怎么写_注册程序怎么写??【python】
  • bpmn流程图_流程图软件哪个好用?
  • 信息系统项目管理师_信息系统项目管理师论文格式
  • python average函数详解_Python内置函数详解——总结篇
  • python3标准库有哪些_Python3-标准库
  • mfc从入门到精通pdf_Visual C++从入门到精通视频教程(含源码)
  • linux 卸载python_Python Tips | 卸载Mac 上pkg安装的Python
  • nmon监控工具使用方法_「测试」 - 性能测试 amp; 性能监控工具nmon
  • 用python画波浪线的句子_matplotlib中的锯齿线或波浪线
  • 使用静态成员变量来计算内存中的实例化的对象数目_吊打面试官-java内存模型...
  • docker容器启动时自动启动脚本_如何在启动Jupyter Notebook时自动执行一段代码?...
  • [译] 怎样写一个基础的编译器
  • 0基础学习移动端适配
  • android高仿小视频、应用锁、3种存储库、QQ小红点动画、仿支付宝图表等源码...
  • docker容器内的网络抓包
  • Docker入门(二) - Dockerfile
  • js对象的深浅拷贝
  • learning koa2.x
  • puppeteer stop redirect 的正确姿势及 net::ERR_FAILED 的解决
  • TiDB 源码阅读系列文章(十)Chunk 和执行框架简介
  • 力扣(LeetCode)22
  • 码农张的Bug人生 - 见面之礼
  • 买一台 iPhone X,还是创建一家未来的独角兽?
  • 巧用 TypeScript (一)
  • 栈实现走出迷宫(C++)
  • PostgreSQL之连接数修改
  • 正则表达式-基础知识Review
  • ​3ds Max插件CG MAGIC图形板块为您提升线条效率!
  • ​LeetCode解法汇总307. 区域和检索 - 数组可修改
  • # 深度解析 Socket 与 WebSocket:原理、区别与应用
  • $(selector).each()和$.each()的区别
  • (20050108)又读《平凡的世界》
  • (3)llvm ir转换过程
  • (42)STM32——LCD显示屏实验笔记
  • (BFS)hdoj2377-Bus Pass
  • (已更新)关于Visual Studio 2019安装时VS installer无法下载文件,进度条为0,显示网络有问题的解决办法
  • (原)Matlab的svmtrain和svmclassify
  • (转)Google的Objective-C编码规范
  • (转)nsfocus-绿盟科技笔试题目
  • .MyFile@waifu.club.wis.mkp勒索病毒数据怎么处理|数据解密恢复
  • .NET / MSBuild 扩展编译时什么时候用 BeforeTargets / AfterTargets 什么时候用 DependsOnTargets?
  • .NET 设计模式—适配器模式(Adapter Pattern)
  • @Query中countQuery的介绍
  • @SuppressWarnings注解
  • [ vulhub漏洞复现篇 ] Grafana任意文件读取漏洞CVE-2021-43798
  • [⑧ADRV902x]: Digital Pre-Distortion (DPD)学习笔记
  • [APIO2012] 派遣 dispatching
  • [BJDCTF 2020]easy_md5
  • [bzoj1901]: Zju2112 Dynamic Rankings
  • [C puzzle book] types
  • [C#]使用DlibDotNet人脸检测人脸68特征点识别人脸5特征点识别人脸对齐人脸比对FaceMesh