数据特征分析:1.基础分析概述& 分布分析
基础分析概述
几个基础分析思路:

分布分析



分布分析是研究数据的分布特征和分布类型,分定量数据、定性数据区分基本统计量。
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
% matplotlib inline
#读取数据
data = pd.read_csv(r'C:\Users\Administrator\Desktop\python数据分析\深圳罗湖二手房信息.csv',
engine = 'python')
data.head()

plt.scatter()散点图
plt.scatter(data['经度'], data['纬度'], #做个简单的三角图,按照经纬度作为它的X Y轴
s = data['房屋单价']/500, #按照房屋的单价来控制图形的大小
c = data['参考总价'], cmap = 'Reds',#按照参考总价来显示颜色
alpha = 0.4) #########plt.scatter()散点图

plt.scatter() 散点图
如果有底图就可以把它的位置给分布出来;点越大代表房屋的单价越高,颜色越深代表总价越高;
通过数据可见,一共8个字段
定量字段:房屋单价,参考首付,参考总价,*经度,*纬度,*房屋编码
定性字段:小区,朝向
1.极差
#极差
def d_range(df, *cols):
krange = [] #空列表,为了保持它的值
for col in cols:
crange = df[col].max() - df[col].min()
krange.append(crange)
return (krange) ##创建函数求极差
key1 = "参考总价"
key2 = "参考首付"
dr = d_range(data, key1, key2)
print("%s极差为:%f \n%s极差为:%f"% ( key1, dr[0], key2, dr[1])) #求出数据对应列的极差
参考总价极差为:175.000000
参考首付极差为:52.500000
从极差中看到销售的稳定程度
2. 频率分布情况:定量字段
(① 通过直方图直接判断分组组数)
.hist(bins = 8) 直方图
#频率分布情况(通过直方图直接判断分组组数)
data[key1].hist(bins = 8) #参考总价 简单查看数据分组,确定分组组数 --->>一般8-16组,这里按照8组为参考

可以看出主要集中在160万以上,60万以下。
频率分布的划分方式:直方图可以快速的看到它的排列情况,把它拆分:分组划分
(②求出分组区间)
pd.cut(data[key1], 10, right = False).value_count(sort=True) sort=True <-等价-> ascending=True
#频率分布情况,分组区间 ;对参考总价进行分组。
gcut = pd.cut(data[key1], 10, right = False) #分成10份,是否包含末端值选False
gcut #type(gcut)-->>Series
gcut_count = gcut.value_counts(sort = False) #做一个统计,不排序
gcut_count
# pd.cut(x, bins, right):按照组数对x分组,且返回一个和x同样长度的分组dataframe,right → 是否右边包含,默认True
# 通过groupby查看不同组的数据频率分布

data['%s分组区间'% key1] = gcut.values
data.head()

(③ 求出目标字段下频率分布的其他统计量 --->>> 频数,频率,累计频率)
分组情况,做累计频率的分组情况
r_zj = pd.DataFrame(gcut_count)
r_zj

.apply(lambda x:"%.2f%%"% (x*100)) 以百分比显示
.style.bar(subset = ['频率', '累计频率']) 在格子中的条形图
#区间出现频率
r_zj = pd.DataFrame(gcut_count)
r_zj.rename(columns = {gcut_count.name:'频数'}, inplace = True) #重命名下,修改频数字段名
r_zj['频率'] = r_zj['频数']/r_zj['频数'].sum() #计算频率
r_zj['累计频率'] = r_zj['频率'].cumsum() #计算累计频率
r_zj['频率%'] = r_zj['频率'].apply(lambda x:"%.2f%%"% (x*100)) #以百分比显示频率
r_zj['累计频率%'] = r_zj['累计频率'].apply(lambda x:"%.2f%%"% (x*100)) #以百分比显示累计频率
r_zj.style.bar(subset = ['频率', '累计频率']) #可视化显示

(④ 绘制频率直方图)
r_zj['频率'].plot(kind = 'bar',figsize = (12, 2),grid = True,color = 'k',alpha = 0.4 ) 直方图
for i, j, k in zip(range(x), y, m): plt.text(i - 0.1, j + 0.01, '%i'% k, color = 'k')
#直方图
r_zj['频率'].plot(kind = 'bar',
figsize = (12, 2),
grid = True,
color = 'k',
alpha = 0.4 ) #plt.title('参考总价分布频率直方图')
x = len(r_zj)
y = r_zj['频率']
m = r_zj['频数'] for i, j, k in zip(range(x), y, m):
plt.text(i - 0.1, j + 0.01, '%i'% k, color = 'k') #-0.1 、+0.01是调整它的位置的
#添加频率标签

频率分布情况 - 定性字段
( ① 通过计数统计判断不同类别的频率)
# 频率分布情况 - 定性字段 -->> ① 通过计数统计判断不同类别的频率
cx_g = data['朝向'].value_counts(sort = True)
print(cx_g)
# 可视化显示
r_cx = pd.DataFrame(cx_g)
r_cx.rename(columns ={cx_g.name:'频数'}, inplace = True) # 修改频数字段名
r_cx['频率'] = r_cx / r_cx['频数'].sum() # 计算频率
r_cx['累计频率'] = r_cx['频率'].cumsum() # 计算累计频率
r_cx['频率%'] = r_cx['频率'].apply(lambda x: "%.2f%%" % (x*100)) # 以百分比显示频率
r_cx['累计频率%'] = r_cx['累计频率'].apply(lambda x: "%.2f%%" % (x*100)) # 以百分比显示累计频率
r_cx.style.bar(subset=['频率','累计频率'], color='#d65f5f',width=100)

( ② 绘制频率直方图、饼图)
.plot 由Series、DataFrame直接绘制图表; plt.pie() 绘制饼图
# 频率分布情况 - 定量字段
# ② 绘制频率直方图、饼图 plt.figure(num = 1,figsize = (12,2))
r_cx['频率'].plot(kind = 'bar',
width = 0.8,
rot = 0,
color = 'k',
grid = True,
alpha = 0.5)
plt.title('参考总价分布频率直方图')
# 绘制直方图 plt.figure(num = 2)
plt.pie(r_cx['频数'],
labels = r_cx.index,
autopct='%.2f%%',
shadow = True)
plt.axis('equal') #调整它的形状
# 绘制饼图

数据特征分析:1.基础分析概述& 分布分析的更多相关文章
- R语言|数据特征分析
对数据进行质量分析以后,接下来可通过绘制图表.计算某些特征量等手段进行数据的特征分析. 主要通过分布分析.对比分析.统计量分析.周期性分析.贡献度分析.相关性分析等角度进行展开. 2.1 分布分析 分 ...
- .NET 并行(多核)编程系列之七 共享数据问题和解决概述
原文:.NET 并行(多核)编程系列之七 共享数据问题和解决概述 .NET 并行(多核)编程系列之七 共享数据问题和解决概述 前言:之前的文章介绍了了并行编程的一些基础的知识,从本篇开始,将会讲述并行 ...
- 判断数据是否服从某一分布(二)——简单易用fitdistrplus包
一.对数据的分布进行初步判断 1.1 原理 对于不同的分布,有特定的偏度(skewness)和峰度(kurtosis),正态分布.均匀分布.逻辑斯谛分布.指数分布的偏度和峰度都是特定的值,在偏 ...
- SQL SERVER大话存储结构(1)_数据页类型及页面指令分析
如果转载,请注明博文来源: www.cnblogs.com/xinysu/ ,版权归 博客园 苏家小萝卜 所有.望各位支持! SQLServer的数据页大 ...
- 数据分析与展示——Pandas数据特征分析
Pandas数据特征分析 数据的排序 将一组数据通过摘要(有损地提取数据特征的过程)的方式,可以获得基本统计(含排序).分布/累计统计.数据特征(相关性.周期性等).数据挖掘(形成知识). .sort ...
- 基于TILE-GX实现快速数据包处理框架-netlib实现分析【转】
最近在研究suricata源码,在匹配模式的时候,有tilegx mpipe mode,转载下文,了解一下. 原文地址:http://blog.csdn.net/lhl_blog/article/de ...
- 开源大数据引擎:Greenplum 数据库架构分析
Greenplum 数据库是最先进的分布式开源数据库技术,主要用来处理大规模的数据分析任务,包括数据仓库.商务智能(OLAP)和数据挖掘等.自2015年10月正式开源以来,受到国内外业内人士的广泛关注 ...
- Python学习笔记三:数据特征分析
完成数据清理后,下面通过图表展开对数据的分析. 1.前期初判(分布分析): 1)判断分组区间: # a.散点图:plt.scatter(data[字段1],data['字段2'], s = data[ ...
- 数据挖掘(data mining),机器学习(machine learning),和人工智能(AI)的区别是什么? 数据科学(data science)和商业分析(business analytics)之间有什么关系?
本来我以为不需要解释这个问题的,到底数据挖掘(data mining),机器学习(machine learning),和人工智能(AI)有什么区别,但是前几天因为有个学弟问我,我想了想发现我竟然也回答 ...
随机推荐
- jqGrid后台交互样例
schoolManageGrid = $("#jqGrid").jqGrid({ url : ctx.path+"/api/school/querySchools&quo ...
- Python- 索引 B+数 比如书的目录
1.索引 为何要有索引? 一般的应用系统,读写比例在10:1左右,而且插入操作和一般的更新操作很少出现性能问题, 在生产环境中,我们遇到最多的,也是最容易出问题的,还是一些复杂的查询操作, 因此对查询 ...
- swift 学习- 22 -- 嵌套类型
// 枚举 常备用于为特定的类 或 结构体实现某些功能, 类似的, 枚举可以方便的定义工具类 或 结构体, 从而为某个复杂的类型所使用, 为了实现这种功能, Swift 允许你定义 嵌套类型, 可以在 ...
- Springboot 事务处理常见坑点
使用事务注解@Transactional 之前,应该先了解它的相关属性,避免在实际项目中踩中各种各样的坑点. 常见坑点1:遇到非检测异常时,事务不开启,也无法回滚. 例如下面这段代码,账户余额依旧增加 ...
- 神经网络之dropout层
一:引言 因为在机器学习的一些模型中,如果模型的参数太多,而训练样本又太少的话,这样训练出来的模型很容易产生过拟合现象.在训练bp网络时经常遇到的一个问题,过拟合指的是模型在训练数据上损失函数比较小, ...
- bat如何提取文本指定行的内容
背景:使用CTS框架运行完测试后,会在logs中生成devices_log和host_log,在results中生成相应的结果(报告).根据报告信息我们可以得知失败的用例,但是却不能知道为什么用例会失 ...
- BeautifulSoup的基本用法
# -*- coding:UTF-8 -*- from urllib import request from bs4 import BeautifulSoup import re import sys ...
- 古代猪文:数论大集合:欧拉定理,exgcd,china,逆元,Lucas定理应用
/* 古代猪文:Lucas定理+中国剩余定理 999911658=2*3*4679*35617 Lucas定理:(m,n)=(sp,tp)(r,q) %p 中国剩余定理:x=sum{si*Mi*ti} ...
- Repair the Wall
问题 : Repair the Wall 时间限制: 1 Sec 内存限制: 128 MB 题目描述 Long time ago , Kitty lived in a small village. ...
- python修改hosts
#coding=utf-8 host = ['192.168.10.240 store.wondershare.com', '192.168.10.240 store.wondershare.jp', ...