欢迎来到 安卓源码空间!
安卓源码空间

                                python:数据统计及数据可视化的基础操作




一、前言


本篇博客主要讲解数据统计及数据可视化的常用方法


二、数据集


  • 数据来源:
    在慕课网下载的数据:

  • 在这里插入图片描述

三、数据统计分析


1、读取数据并查看基本信息


  • 导入数据科学包:

# 导入数据科学工具包 import numpy as np import pandas as pd import seaborn
  • 读取数据:

#读取数据 
 data=pd.read_csv('C:/Users/abc/Desktop/dataset/test.csv',encoding="ANSI")  
#取消最大显示行数和列数限制
 pd.options.display.max_columns=None  
 pd.options.display.max_rows=None  
#读取数据表的前5行  
 data.head()  

在这里插入图片描述


结果:


在这里插入图片描述


  • 查看数据的基本信息

#查看数据尺寸  
print(data.shape)  
#查看数据数量 
 print(data.size) 
 #查看字段类型 
 print(data.dtypes) 
 #查看数据信息  
print(data.info())  

在这里插入图片描述


结果如下:


在这里插入图片描述


在这里插入图片描述


  • 对数值型数据做一些统计:
    describe()方法

#数据描述:只统计数值型数据 data.describe() 

在这里插入图片描述


2、分类数据的统计


(1)统计字段不同取值的数目

data['字段名'].value_counts() 

在这里插入图片描述


(2)统计字段不同取值的占比

data["字段名"].value_counts(normalize=True) 

在这里插入图片描述


3、数值型数据的统计


(1)cut函数
  • 基本使用

在这里插入图片描述


  • right参数


  • 是否包含右侧数据,默认包含右侧区间


  • 在这里插入图片描述


  • 在这里插入图片描述


  • bin参数


  • 在这里插入图片描述


  • 对数值型数据进行分箱处理


  • 分箱:把一个大区间的数据分成多个小区间的数据,然后可以统计每个小区间的数据量、数据量的占比情况等指标


df_tenure_boxes, 
df_tenure_boxes_labels = pd.cut(data['tenure'],  
bins=[-111, 0, 10, 20, 30, 40, 50, 60, 70, 80, 90, 100, 110, 120, 130, 140, 150, 160, 170, 180, 190, 200, 8500], 
 right=False, retbins=True, include_lowest=True)  

数据量统计结果:


在这里插入图片描述


数据占比统计结果:


在这里插入图片描述


(2)

对数值型的数据进行描述:


在这里插入图片描述

4、其他数据统计
  • 查看数据的指定列

  • 在这里插入图片描述

四、数据可视化


1、柱状图


  • 对数值型数据进行分箱处理

df_tenure_boxes, 
df_tenure_boxes_labels = pd.cut(data['tenure'], 
 bins=[-111, 0, 10, 20, 30, 40, 50, 60, 70, 80, 90, 100, 110, 120, 130, 140, 150, 160, 170, 180, 190, 200, 8500], 
right=False, retbins=True, include_lowest=True)  

  • 统计不同区间的数据各自的数据量

df_tenure_boxes.value_counts() 

结果:


在这里插入图片描述


  • 分箱数据的label值,即每个区间的端点值

df_tenure_boxes_labels

结果:


在这里插入图片描述


  • 统计每个区间的数据记录数

df_tenure_boxes.value_counts().sort_index().values

结果:



在这里插入图片描述


  • 绘制柱状图

#绘制柱状图  
import matplotlib.pyplot as plt  
#设置画布的大小  
plt.figure(figsize=(20, 10))  
#柱状图: 
bar plt.bar(range(22), 
 df_tenure_boxes.value_counts().sort_index().values,  
tick_label=df_tenure_boxes.value_counts(normalize=True).sort_index().index) 
 plt.show()  

结果:


在这里插入图片描述


在这里插入图片描述


2、密度分布直方图


sns.distplot(data['tenure']) plt.show() 

结果:


在这里插入图片描述


在这里插入图片描述



copyright@ 2020-2028  安卓源码空间网版权所有   

备案号:豫ICP备2023034476号-1号