从这周开始,我将在此记录我对《python数据分析与挖掘实战》(第二版)的跟读情况,将我认为的值得学习的点记录在这里,有时候也会对相关知识进行拓展,保持每周更新3-4次的频率,争取在下次开学前把这本书学习完。同时,因为python中库的更新,书中原来使用的一些函数已经发生变化,我也会相应进行修改。

一、数据特征分析

1. 定量数据的分布分析——直方图

import pandas as pd
import numpy as np
catering_sale = './Python数据分析与挖掘实战(第2版)/chapter3/demo/data/catering_fish_congee.xls'  # 餐饮数据
data = pd.read_excel(catering_sale,names=['date','sale'])  # 读取数据bins = [0,500,1000,1500,2000,2500,3000,3500,4000]
labels = ['[0,500)','[500,1000)','[1000,1500)','[1500,2000)','[2000,2500)','[2500,3000)','[3000,3500)','[3500,4000)'] data['sale分层'] = pd.cut(data.sale, bins, labels=labels)
aggResult = data.groupby('sale分层')['sale'].count()pAggResult = round(aggResult/aggResult.sum(), 2, ) * 100import matplotlib.pyplot as plt
plt.figure(figsize=(10,6))  # 设置图框大小尺寸
pAggResult.plot(kind='bar',width=0.8,fontsize=10)  # 绘制频率直方图
plt.rcParams['font.sans-serif'] = ['SimHei']  # 用来正常显示中文标签
plt.title('季度销售额频率分布直方图',fontsize=20)
plt.show()

结果如图:

上面其实是用条形图来实现条形图的绘制,同时,bins也都是自己设置的范围,实际我们用hist函数可以更便捷实现多种直方图的画法。

plt.figure(figsize=(10,6))
bins = range(0,4500,500)
nums,bins,patches = plt.hist(data['sale'],bins,edgecolor='k')
plt.xticks(bins,bins)
for num,bin in zip(nums,bins):plt.annotate(num,xy=(bin,num),xytext=(bin+1.5,num+0.5))
plt.title(u'季度销售额分布直方图')
plt.show()

结果如图:

关于数据分箱用法pd.cut可以参考:数据分箱之pd.cut() - 知乎

python中groupby的用法可以参考:Python中的groupby分组_Emily-CSDN博客_groupby python

python中分组函数groupby和分组运算函数agg小结_数据小白的进阶之路-CSDN博客_python分组函数

直方图的多种画法可以参考:

matplotlib.pyplot.hist — Matplotlib 3.5.0 documentation

python 中直方图绘制 - LiErRui - 博客园

2. 定性数据分布分析——条形图,饼图

import pandas as pd
import matplotlib.pyplot as plt
catering_dish_profit = './Python数据分析与挖掘实战(第2版)/chapter3/demo/data/catering_dish_profit.xls'  # 餐饮数据
data = pd.read_excel(catering_dish_profit)  # 读取数据# 绘制饼图
x = data['盈利']
labels = data['菜品名']
plt.figure(figsize = (8, 6))  # 设置画布大小
plt.pie(x,labels=labels)  # 绘制饼图
plt.rcParams['font.sans-serif'] = 'SimHei'
plt.title('菜品销售量分布(饼图)')  # 设置标题
plt.axis('equal')
plt.show()# 绘制条形图
x = data['菜品名']
y = data['盈利']
plt.figure(figsize = (8, 4))  # 设置画布大小
plt.bar(x,y)
plt.rcParams['font.sans-serif'] = 'SimHei'
plt.xlabel('菜品')  # 设置x轴标题
plt.ylabel('销量')  # 设置y轴标题
plt.title('菜品销售量分布(条形图)')  # 设置标题
plt.show()  # 展示图片

输出结果如图:

条形图可以参考这篇文章:python 画条形图(柱状图)_天天向上的专栏-CSDN博客_python柱状图

饼图可以参考这篇文章:

Python数据可视化的例子——饼图(pie)_Fo*(Bi)的博客-CSDN博客_python数据可视化饼图

3. 对比分析——折线图

# 部门之间销售金额比较
import pandas as pd
import matplotlib.pyplot as plt
data=pd.read_excel("./Python数据分析与挖掘实战(第2版)/chapter3/demo/data/dish_sale.xls")
plt.figure(figsize=(8, 4))
plt.plot(data['月份'], data['A部门'], color='green', label='A部门',marker='o')
plt.plot(data['月份'], data['B部门'], color='red', label='B部门',marker='s')
plt.plot(data['月份'], data['C部门'],  color='skyblue', label='C部门',marker='x')
plt.legend() # 显示图例
plt.ylabel('销售额(万元)')
plt.show()

结果如下:

关于折线图可以参考Python数据可视化的例子——折线图(line)_Fo*(Bi)的博客-CSDN博客_python数据可视化折线图

4. 统计量分析

import pandas as pdcatering_sale = './Python数据分析与挖掘实战(第2版)/chapter3/demo/data/catering_sale.xls'  # 餐饮数据
data = pd.read_excel(catering_sale, index_col = u'日期')  # 读取数据,指定“日期”列为索引列
data = data[(data[u'销量'] > 400)&(data[u'销量'] < 5000)]  # 过滤异常数据
statistics = data.describe()  # 保存基本统计量statistics.loc['range'] = statistics.loc['max']-statistics.loc['min']  # 极差
statistics.loc['var'] = statistics.loc['std']/statistics.loc['mean']  # 变异系数
statistics.loc['dis'] = statistics.loc['75%']-statistics.loc['25%']  # 四分位数间距print(statistics)

得到结果如下:

关于如何指定索引,可以参考这两篇文章:

Python pandas,index索引,修改索引,复合索引,将某列设为索引_houyanhua1的专栏-CSDN博客_pandas设置列索引

index_col的用法 index_col = None / 0 / False_wencky的博客-CSDN博客_index_col=false

5. 周期性分析

import pandas as pd
import matplotlib.pyplot as pltdf_normal = pd.read_csv("./Python数据分析与挖掘实战(第2版)/chapter3/demo//data/user.csv")
plt.figure(figsize=(8,4))
plt.plot(df_normal["Date"],df_normal["Eletricity"])
plt.xlabel("日期")
plt.ylabel("每日电量")
# 设置x轴刻度间隔
x_major_locator = plt.MultipleLocator(7)
ax = plt.gca()
ax.xaxis.set_major_locator(x_major_locator)
plt.title("正常用户电量趋势")
plt.rcParams['font.sans-serif'] = ['SimHei']  # 用来正常显示中文标签
plt.show()  # 展示图片

输出结果如下:

关于坐标轴的设置问题可以参考以下两篇文章:

Matplotlib入门-2-坐标轴axis/axes设置 - 知乎

Python设置matplotlib.plot的坐标轴刻度间隔以及刻度范围_宁宁Fingerstyle的博客-CSDN博客_matplotlib设置坐标轴刻度

6. 贡献度分析

即找到贡献度最高的前80%的产品

import pandas as pd# 初始化参数
dish_profit = './Python数据分析与挖掘实战(第2版)/chapter3/demo/data/catering_dish_profit.xls'  # 餐饮菜品盈利数据
data = pd.read_excel(dish_profit, index_col = u'菜品名')
data = data[u'盈利'].copy()
data.sort_values(ascending = False)import matplotlib.pyplot as plt  # 导入图像库
plt.rcParams['font.sans-serif'] = ['SimHei']  # 用来正常显示中文标签
plt.rcParams['axes.unicode_minus'] = False  # 用来正常显示负号plt.figure()
data.plot(kind='bar')
plt.ylabel(u'盈利(元)')
p = 1.0*data.cumsum()/data.sum()
p.plot(color = 'r', secondary_y = True, style = '-o',linewidth = 2)
plt.annotate(format(p[6], '.4%'), xy = (6, p[6]), xytext=(6*0.9, p[6]*0.9), arrowprops=dict(arrowstyle="->", connectionstyle="arc3,rad=.2"))  # 添加注释,即85%处的标记。这里包括了指定箭头样式。
plt.ylabel(u'盈利(比例)')
plt.show()

结果如下:

关于sort_values用法,可以参考这篇文章:dataframe排序中sort_values方法的使用---(超级详细)_爱代码的小哥的博客-CSDN博客_dataframe sort_values

7.相关性分析

可以用散点图和散点图矩阵来进行相关性分析

散点图画法:python Matplotlib 系列教程(四)——散点图_xjl271314的博客-CSDN博客_plt散点图

散点图矩阵画法:Python 用 pandas 绘制散点图矩阵 - 赏尔 - 博客园

数据相关性分析:

from __future__ import print_function
import pandas as pdcatering_sale = './Python数据分析与挖掘实战(第2版)/chapter3/demo/data/catering_sale_all.xls'  # 餐饮数据,含有其他属性
data = pd.read_excel(catering_sale, index_col = u'日期')  # 读取数据,指定“日期”列为索引列
print(data.corr(),'\n')  # 相关系数矩阵,即给出了任意两款菜式之间的相关系数

结果如下:

print(data.corr()[u'百合酱蒸凤爪'],'\n')  # 只显示“百合酱蒸凤爪”与其他菜式的相关系数

结果如下:

print(data[u'百合酱蒸凤爪'].corr(data[u'翡翠蒸香茜饺']))

结果如下:

这篇文章基本只展示了书中的内容,以及汇总了一些我认为写的比较好的文章(侵删),之后的文章还会有更多各种图的画法~

【python数据分析】用python进行数据探索1(含各种数据基础分析方法以及直方图、条形图、折线图等基本画法)相关推荐

  1. Python数据分析实战(2)——探索2012欧洲杯数据

    个人复习总结(jupyter) 练习来源:工作台 - Heywhale.com 1导入必要的库和创建数据 import pandas as pd 路径='D:/数据分析有关数据集/十套练习/exerc ...

  2. 《Python数据分析与挖掘实战》一3.1 数据质量分析

    本节书摘来自华章出版社<Python数据分析与挖掘实战>一书中的第3章,第3.1节,作者 张良均 王路 谭立云 苏剑林,更多章节内容可以访问云栖社区"华章计算机"公众号 ...

  3. Python 数据分析三剑客之 Pandas(六):GroupBy 数据分裂、应用与合并

    CSDN 课程推荐:<迈向数据科学家:带你玩转Python数据分析>,讲师齐伟,苏州研途教育科技有限公司CTO,苏州大学应用统计专业硕士生指导委员会委员:已出版<跟老齐学Python ...

  4. Python数据分析小技巧:如何在Pandas中实现数据透视表?

    Python数据分析小技巧:如何在Pandas中实现数据透视表? 数据透视表是数据分析中非常有用的工具,可以帮助我们快速了解数据的结构.关联和趋势.在Pandas中,我们可以使用pivot_table ...

  5. 为什么学习Python数据分析,python数据分析有什么用?

    一.首先我们先说说为什么学习Python数据分析 互联网时代,我们每一个人,每天无时无刻都在生产数据,一分钟内,微博上新发的数据量超过10万,b站的视频播放量超过600万-- 这些庞大的数字,意味着什 ...

  6. python数据可视化(matplotlib条形图、饼图、箱状图、直方图、折线图)(代码)

    python数据可视化(matplotlib条形图.饼图.箱状图.直方图.折线图) matplotlib(条形图) 一.简单条形图 1.简单垂直条形图 2.简单水平条形图 二.水平交错条形图 三.垂直 ...

  7. 数据探索(数据清洗)①—数据质量分析(对数据中的缺失值、异常值和一致性进行分析)

    Python介绍. Unix & Linux & Window & Mac 平台安装更新 Python3 及VSCode下Python环境配置配置 python基础知识及数据分 ...

  8. 4.2数据探索(一) - 数据探索的方法

    简介 数据探索是在具有较为良好的样本后,对样本数据进行解释性的分析工作,它是数据挖掘较为前期的部分.数据探索并不需要应用过多的模型算法,相反,它更偏重于定义数据的本质.描述数据的形态特征并解释数据的相 ...

  9. Axure高保真移动端智能数据监控+用户画像+饼状图+条形图+折线图数据统计+抖音直播app用户数据统计+智慧移动端主播粉丝、评论、播放量大数据统计+套餐购买、续费套餐prd流程

    作品介绍:Axure高保真移动端智能数据监控+用户画像+饼状图+条形图+折线图数据统计+直播app用户数据统计+智慧移动端主播粉丝.评论.播放量大数据统计+套餐购买.续费套餐prd流程 原型演示及下载 ...

  10. Axure经典案例高保真交互下载(数据统计图高保真原型+雷达图+条形图+折线图+web端通用后台管理原型+统计表、统计分析+用户画像分析)

    Axure原型作品内容包括:数据统计图高保真原型+雷达图+条形图+折线图+web端通用后台管理原型+统计表.统计分析+用户画像分析+认证监控预警 以下是Axure部分作品图片截图展示,想看交互效果的请 ...

最新文章

  1. 快手二面:Java 里的 for (;;) 与 while (true),哪个更快?
  2. Gson源码解析和它的设计模式
  3. 新雨个人面试经验总结
  4. Spring Cloud构建微服务架构(六)高可用服务注册中心
  5. 三同轴连接器_一种毫米波频段微带同轴转换结构
  6. 计算机专业直接工作简历,2017计算机专业工作简历
  7. Codeforces Round #114 (Div. 2)
  8. 使用绑定进行WPF DataGrid格式化的指南
  9. vue 判断页面加载完成_vue之骨架屏踩坑之路
  10. Linux---进程的基本概念
  11. MySQL 刷脏页问题
  12. 将redis加入到Windows服务开机启动
  13. 超级硬盘恢复软件真的超好用哦!
  14. Spring Boot 接入 Dubbo 指导文档
  15. obs源码分析【二】:录制功能剖析
  16. SAP ABAP ALV 的一些总结:Custom container 和 Splitter container
  17. 微信小程序 实现带刻尺度滑块
  18. Linux环境部署:开启电脑虚拟化
  19. 1.5.37:雇佣兵
  20. 搭建harbor私库

热门文章

  1. 成功在于实践作文_成功源于勤奋作文5篇
  2. S5PV210地址映射
  3. Python按键脚本
  4. js将html页面转图片
  5. Android 实战项目 -- 登录主页、找回密码
  6. 基于贝叶斯定理的根据大学生恋爱心理数据预测性别的朴素贝叶斯模型(python+mysql)
  7. LatinIME输入法分析
  8. 电脑软件可以上网,但是浏览器网页打不开显示代理服务器配置出错
  9. MLlib Breeze和BLAS简介
  10. ddr3ddr4 lpddr4速率_lpddr3和ddr4哪个快