数据分析的一般流程

1. 提取数据(筛选)

2. 整合和重塑

3. 数据清洗(缺失值、空值、异常值、格式、量纲、名称)

  • 缺失值的处理:
    • dropna() 删除空值
    • fillna() 填充空值<— 均值、中位数、众数
    • isnull() / notnull() 判断空值
  • 重复值的处理:
    • duplicated(): 判断是否重复
    • drop_duplicates(): 删除重复值
  • 异常值的处理:
    • 异常值 / 极端值 / 离群值 —> 1.5倍IQR / 3σ法则
      极端值和离群值会在下次或之后复现
    • drop(): 删除
    • replace():替换
  • 预处理:
    • apply():将函数作用到数据上.需要指定在哪个轴上运行

    • transform():将(多个)函数作用到数据上
      transform可以传两个函数,会变成二级索引

      transform不能使用归约函数

    • applymap():对每个元素使用指定的函数进行映射,相当于Series上的map()方法—>elementwise

    • 注意:这三个方法都是高阶函数的用法,apply()方法接收的函数可以是带归约性质的函数(聚合函数),也可以是没有归约性质的函数。transform()方法接受的函数不能是带归约功能的函数,只能是对数据做变换的函数,简单地说就是函数的执行不会减少数据的量。

4. 数据透视(排序、分组、聚合)

5. 数据可视化(统计图表)

6. 数据的洞察(发现问题给出建议) —>一般性的方法(数据思维)和经验的积累

规约函数:会把数据汇合,np.sum()

连接数据库

import pymysql
conn = pymysql.connect(host='47.104.31.138',port=3306,user='guest',password='Guest.618',database='hrs',charset='utf8mb4')
dept_df=pd.read_sql('select dno,dname,dloc from tb_dept',conn)
emp_df=pd.read_sql('select eno,ename,job,mgr,sal,comm,dno from tb_emp',con=conn,
#            index_col='eno')

连接表

# 连接两张表
# on:基于哪个连接
# 左右内外连接
pd.merge(emp_df,dept_df,on='dno',how='inner').set_index('eno')# 连表法二
emp_df.merge(dept_df,how='inner',on='dno').set_index('eno')

数据查询

# 方式一
emp_df[(emp_df.dno ==20) & (emp_df.sal>=5000)]# 方式二
emp_df.query('dno==20 and sal>=5000')

删除不满足的条件

# 删掉不满足的条件并返回新列表
emp_df.drop(emp_df[emp_df.dno != 20].index)# emp_df.drop(emp_df[emp_df.dno != 20].index,inplace=True)
# inplace=True:把不满足条件的删掉,且返回原列表# 删行index,删列columns
emp_df.drop(columns=['mgr','dno'],inplace=True)
emp_df

修改索引

# 修改行索引或者列索引
emp_df.rename(columns={'sal':'salary','comm':'allowance'},inplace=True)
emp_df

重置索引

# 重置索引,返回新对象
# emp_df.reset_index()
emp_df.reset_index(inplace=True)
#在原列表上修改
# 不能多次在原列表上进行修改

设置索引

# 设置索引:指定一个列或多个列充当索引
# 多级索引
# emp_df.set_index(['eno','ename'])
# 单级索引
emp_df.set_index('eno',inplace=True)

多级索引

tmp = pd.DataFrame({'A':range(3),'B':range(1,4)})
# 在列上形成了多级索引
tmp = tmp.transform([np.sqrt,np.exp])
tmp

调整索引

emp_df.reindex(columns=['salary','allowance','job'])
# 列调整索引,调整索引顺序

调整索引顺序,类似花式索引

emp_df.reindex(index=['李莫愁','张三丰','乔峰'])

选择性删除某些空值的列

# 删除某些空值的列,保留某些,可以用series来处理
mgr = emp_df.mgr
tmp = emp_df.dropna(axis=1)
tmp['mgr']=mgr
tmp

数据处理

import itertools
names = ['高新','新津','犀浦']
years=['2017','2018','2019']
# 生成笛卡尔积
for name,year in itertools.product(names,years):print(name)
import itertools
names = ['高新','新津','犀浦']
years=['2018','2019']
dfs = [pd.read_excel(f'data/小宝剑大药房({name}店){year}年销售数据.xlsx',header=1)for name,year in itertools.product(names,years) ]
pd.concat(dfs,ignore_index=True).to_excel('小宝剑大药房2018-2019年销售数据汇总.xlsx')

youtube为例

youtube_df = pd.read_excel(f'data/某视频网站运营数据.xlsx',usecols = ['video_id','title','channel_title','views','likes']                   )
# 显示前10行
youtube_df.head(10)
# 显示后10行
youtube_df.tail(10)
# 判断重复
youtube_df.duplicated('video_id')
# 去重
youtube_df.drop_duplicates('video_id')
# keep =        first     last      False
# 遇到相同保留第一个、最后一个、一个都不保留
emp_df.replace('程序员','程序猿')
# replace满足正则表达式
emp_df.at[2,'job'] = '程序媛'
emp_df
# 使用正则表达式的使用
emp_df.replace('程序[猿媛]','程序员',regex=True)
emp_df['job']=emp_df.job.str.replace('程序[媛猿]','程序员')
emp_df
# 修改数据
# 直接作用到每个元素上,只对每个元素进行操作
tmp.applymap(lambda x:x**2)
# 归约
tmp1 = pd.DataFrame({'A':range(3),'B':range(1,4)})
tmp1.apply(np.sum,axis=1)
# 没有归约
tmp1.apply(np.sqrt)


数据可视化8_数据分析的一般流程相关推荐

  1. 《Microsoft Power BI数据可视化与数据分析》之超市运营数据分析

    14.3.1  各省份销售额柱形图 在"字段"窗格中,将"销售额"字段拖到画布上的空白区域,然后将"省/自治区"字段拖动到"可视化 ...

  2. c#split方法拆分为数据_Dexplot:基于pandas,比matplotlib更简单的数据可视化和数据分析工具...

    Dexplot:建议准备学matplotlib和seaborn的数据可视化新手或者数据可视化爱好者食用 适用于长数据 比如网站用户留言的统计 特色是不用matplotlib 而用pandas导入数据( ...

  3. python分析股票数据_Python数据可视化——股票数据分析

    1.背景 GAFATA,它表示的是GOOGLE,AMAZON,FACEBOOK,APPLE,TENCENT,ALIBABA这六家互联网巨头的首字母缩写.本文主要分析GAFATA这六家公司股票近一年的的 ...

  4. 时间序列分类02:数据可视化与问题分析建模流程详解(UCI-HAR)

    [时间序列预测/分类] 全系列60篇由浅入深的博文汇总:传送门 上篇文章介绍了人类活动识别常用的方法.最新进展和面临的挑战.UCI人类活动识别数据集是人类活动识别领域的benchmark数据集(还有一 ...

  5. 数据可视化就是数据分析吗,两者之间是什么关系?

    商业智能解决方案对于一些企业来说,可能是一个欺骗性的解决方案.许多企业声称商业智能软件解决方案实际上只能提供所需功能和效果的一半. 重要的是区分两种类型的业务分析和智能工具:端到端解决方案和仅是前端的 ...

  6. 数据可视化、数据分析常用的图表都有哪些?(1)

    简单.易用的数据可视化工具,可以直观的帮助您展示数据结果,实时展示庞杂数据背后的业务现状. 下面,我将以Sugar BI为例,为大家讲解在日常的数据可视化中,我们大概都会用到哪些图表组件 Sugar ...

  7. python足球数据可视化_NBA数据分析_python可视化数据分析_可视化数据分析工具_可视化分析工具-帆软...

    夺冠没含金量!python和BI可视化分析,湖人赢在这点上. 在经历了很多很多之后,湖人队终于获得了总冠军,众望所归. 如果科比还在的话,一定也很自豪吧,毕竟上一次夺冠还是10年前. 那问题来了,为什 ...

  8. 原创代码思路分享 计算机毕业设计Python+Spark+LSTM中药推荐系统 中药大数据可视化 中药数据分析 中药可视化系统 中药知识图谱

    开发技术 前端:vue.js.echarts 后端:springboot.vue.js 数据库:mysql 大数据计算框架:spark.hadoop 算法(机器学习.人工智能):推荐算法(协同过滤算法 ...

  9. 数据挖掘 之 数据可视化与数据分析

    相关库:numpy.panda.matplotlib 一些基础方法 1.1绘制函数图 plt.plot(x, y, format_string, **kwargs) x:x轴数据,列表或数组,可选 y ...

最新文章

  1. 华为产品技术学习笔记之路由原理(二)
  2. 刷breed 极路由3_路由器接入usb打印机制作无线打印机服务器
  3. 柴犬为什么总是被卡住狗头?
  4. BP神经网络原理简介
  5. 一网打尽Mac上的软件套装 - Omi特别篇(附演示视频)
  6. logit回归模型的参数估计过程_LOGISTIC模型参数估计及预测实例.pdf
  7. 5G接入网学习:回顾电调天线
  8. IGBT功率半导体器件
  9. sensor 驱动调试小结
  10. 【王道】计算机组成原理第三章存储系统(三)
  11. hadoop面试题 5 ---有用
  12. [编程] 2 python 实现埃拉托色尼筛选法
  13. C/C++时间字符串和时间戳的相互转化
  14. 红米5plus刷android one,手机知识:红米5plus如何 红米5plus配置参数
  15. androidstudio安装的app打开闪退,AndroidManifest中也声明了类,但是却没有报错信息。(小坑)
  16. Nacos Serve 本地启动报Error starting Tomcat context. Exception: org.springframework.beans.factory.BeanCre
  17. 【滤波器】基于低通滤波实现肌电信号处理含Matlab源码
  18. Google Earth Engine(GEE)——Landsat卫星影像重采样提高分辨率
  19. 工字型钢弹性截面模量计算公式_截面模量的计算公式是什么?
  20. 3DES的算法原理浅析

热门文章

  1. (31)Java基础语法 --接口
  2. Lambda表达式练习【应用】
  3. win7+VS2015+OpenCV3.20的搭建
  4. VMware故障:配置文件(.vmx)损坏修复
  5. 启动VMware时遇到“vmx86版本不匹配问题”处理方法
  6. 如何在Linux上玩游戏
  7. python3字典运算_Python3字典与集合
  8. 【AD】如何画双层PCB板,双层PCB板布线规则
  9. 爬虫mysql数据清洗_爬虫分析之数据存储——基于MySQL,Scrapy
  10. namenode无法启动,There appears to be a gap in the edit log. We expected txid 10323, but got txid 10324.