数据特征分析-分布分析

分布分析用于研究数据的分布特征,常用分析方法:

1、极差

2、频率分布

3、分组组距及组数

df = pd.DataFrame({'编码':['001','002','003','004','005','006','007','008','009','010','011','012','013','014','015'],\'小区':['A村','B村','C村','D村','E村','A村','B村','C村','D村','E村','A村','B村','C村','D村','E村'],\'朝向':['south','east_north','south','east_south','eath_south','north','east_north','west_north','south','west','north','east_north','south','south','east'],\'单价':[7374,6435,6643,5874,6738,6453,5733,6034,5276,5999,6438,5864,6099,5699,6999],\'首付':[15,7.5,18,10,30,10,18,30,40,30,20,22,29,30,40],\'总价':[50,65,68,73,80,55,45,70,59,57,40,60,50,48,60],\'经度':[114.0,114.6,114.8,114.2,114.5,114.3,114.4,114.7,114.9,114.1,114.8,114.2,114.5,114.3,114.8],\'纬度':[22.0,22.4,22.6,22.8,22.2,22.1,22.7,22.5,22.9,22.3,22.8,22.2,22.1,22.7,22.5]    }) 

 

先对总体做关于经纬度的散点图

plt.scatter(df['经度'],df['纬度'],s = df['单价']/50,c = df['总价'],cmap='Greens')   #原点的大小可以表示单价,越大单价越高;颜色深浅可以表示总价,越深总价越高

 

 求总价、单价和首付的极差

def d_range(df,*cols):krange = []for c in cols:crange = df[c].max() - df[c].min()krange.append(crange)return ('%s极差:%s\n%s极差:%s\n%s极差:%s'%(cols[0],krange[0],cols[1],krange[1],cols[2],krange[2]))
print(d_range(df,'总价','单价','首付'))
# 总价极差:40
# 单价极差:2098
# 首付极差:32.5

 

单价和总价的频率分布

fig,axes = plt.subplots(1,2,figsize = (10,4))
df['单价'].hist(bins = 8,ax = axes[0])
df['总价'].hist(bins = 8,ax = axes[1])

 

将总价分为8个区间,求出每个区间的频数、频率,并求出累计频率

# 频率分布,分组区间
total_range = pd.cut(df['总价'],8)   #通过cut将总价分为8个区间
total_range_count = total_range.value_counts(sort=False)   #求每个区间的个数,结果为一个Seris,不按列的大小排序
total_range_s = pd.DataFrame(total_range_count)  #将Seris转化为DataFrame,生成一个用于统计总价的DataFrame
# # total_range_s.rename(columns = {total_range_count.name:'频数',inplace = True})
total_range_s.columns = ['频数']  #给转化后的DataFrame重命名列
df['区间'] = total_range.values  #给原数据加一列区间
total_range_s['频率'] = total_range_s['频数']/total_range_s['频数'].sum()  #求总价在每个区间出现的频率
total_range_s['累计频率'] = total_range_s['频率'].cumsum()   ##求总价在每个区间的累计频率
total_range_s['频率%'] = total_range_s['频率'].apply(lambda x:'%.2f%%'%(100*x))  #格式化频率列,显示为2位百分数
total_range_s['累计频率%'] = total_range_s['累计频率'].apply(lambda x:'%.2f%%'%(100*x))#格式化频率列,显示为2位百分数
total_range_s.style.bar(subset = ['频率','累计频率'])

 

 对每个总价区间出现的频率做柱状图

total_range_s['频率'].plot(kind = 'bar',alpha = 0.8,title ='total price interval')
x = range(len(total_range_s.index))
for i,j,k in zip(x,total_range_s['频率'],total_range_s['频数']):plt.text(i,j+0.01,k)

 

 

对于单个字段比如朝向,做频率统计分析

# 频率分布 定性字段
cx = df['朝向'].value_counts()
cx_s = pd.DataFrame(cx)
cx_s.columns = ['频数']
cx_s['频率'] = cx_s['频数']/cx_s['频数'].sum()
cx_s['累计频率'] = cx_s['频率'].cumsum()
cx_s['频率%'] = cx_s['频率'].apply(lambda x:'%.2f%%'%(100*x))
cx_s['累计频率%'] = cx_s['累计频率'].apply(lambda x:'%.2f%%'%(100*x))
cx_s.style.bar(subset = ['频率','累计频率'] )

 

 对朝向做柱状图和饼图

fig,axes = plt.subplots(1,2,figsize = (10,4))
cx_s['频率'].plot(kind = 'bar',ax = axes[0],title = 'direction bar')   plt.pie(cx_s['频数'],labels=cx_s.index,autopct='%2.f%%')
plt.title('direction pie')

 

转载于:https://www.cnblogs.com/Forever77/p/11344050.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/391721.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

如何在Pandas中使用Excel文件

From what I have seen so far, CSV seems to be the most popular format to store data among data scientists. And that’s understandable, it gets the job done and it’s a quite simple format; in Python, even without any library, one can build a simple CSV par…

数据特征分析-对比分析

对比分析是对两个互相联系的指标进行比较。 绝对数比较(相减):指标在量级上不能差别过大,常用折线图、柱状图 相对数比较(相除):结构分析、比例分析、空间比较分析、动态对比分析 df pd.DataFrame(np.random.rand(30,2)*1000,columns[A_sale…

Linux基线合规检查中各文件的作用及配置脚本

1./etc/motd 操作:echo " Authorized users only. All activity may be monitored and reported " > /etc/motd 效果:telnet和ssh登录后的输出信息 2. /etc/issue和/etc/issue.net 操作:echo " Authorized users only. All…

tableau使用_使用Tableau升级Kaplan-Meier曲线

tableau使用In a previous article, I showed how we can create the Kaplan-Meier curves using Python. As much as I love Python and writing code, there might be some alternative approaches with their unique set of benefits. Enter Tableau!在上一篇文章中 &#x…

Nexus3.x.x上传第三方jar

exus3.x.x上传第三方jar: 1. create repository 选择maven2(hosted),说明: proxy:即你可以设置代理,设置了代理之后,在你的nexus中找不到的依赖就会去配置的代理的地址中找hosted:你可以上传你自…

责备的近义词_考试结果危机:我们应该责备算法吗?

责备的近义词I’ve been considering writing on the topic of algorithms for a little while, but with the Exam Results Fiasco dominating the headline news in the UK during the past week, I felt that now is the time to look more closely into the subject.我一直…

c/c++编译器的安装

MinGW(Minimalist GNU For Windows)是个精简的Windows平台C/C、ADA及Fortran编译器,相比Cygwin而言,体积要小很多,使用较为方便。 MinGW最大的特点就是编译出来的可执行文件能够独立在Windows上运行。 MinGW的组成: 编译器(支持C、…

numpy 线性代数_数据科学家的线性代数—用NumPy解释

numpy 线性代数Machine learning and deep learning models are data-hungry. The performance of them is highly dependent on the amount of data. Thus, we tend to collect as much data as possible in order to build a robust and accurate model. Data is collected i…

spring 注解方式配置Bean

概要: 再classpath中扫描组件 组件扫描(component scanning):Spring可以从classpath下自己主动扫描。侦測和实例化具有特定注解的组件特定组件包含: Component:基本注解。标示了一个受Spring管理的组件&…

零元学Expression Blend 4 - Chapter 25 以Text相关功能就能简单做出具有设计感的登入画面...

原文:零元学Expression Blend 4 - Chapter 25 以Text相关功能就能简单做出具有设计感的登入画面本章将交大家如何运用Blend 4 内的Text相关功能做出有设计感的登入画面 让你五分钟就能快速做出一个登入画面 ? 本章将教大家如何运用Blend 4 内的Text相关功能做出有设计感的登入…

冠状病毒时代的负责任数据可视化

First, a little bit about me: I’m a data science grad student. I have been writing for Medium for a little while now. I’m a scorpio. I like long walks on beaches. And writing for Medium made me realize the importance of taking personal responsibility ove…

集合_java集合框架

转载自http://blog.csdn.net/zsw101259/article/details/7570033 Java集合框架图 简化图: Java平台提供了一个全新的集合框架。“集合框架”主要由一组用来操作对象的接口组成。不同接口描述一组不同数据类型。 1、Java 2集合框架图 ①集合接口:6个…

显示随机键盘

显示随机键盘 1 <!DOCTYPE html>2 <html lang"zh-cn">3 <head>4 <meta charset"utf-8">5 <title>7-77 课堂演示</title>6 <link rel"stylesheet" type"text/css" href"style…

数据特征分析-统计分析

一、统计分析 统计分析是对定量数据进行统计描述&#xff0c;常从集中趋势和离中趋势两个方面分析。 集中趋势&#xff1a;指一组数据向某一中心靠拢的倾向&#xff0c;核心在于寻找数据的代表值或中心值-统计平均数&#xff08;算数平均数和位置平均数&#xff09; 算术平均数…

数据eda_银行数据EDA:逐步

数据edaThis banking data was retrieved from Kaggle and there will be a breakdown on how the dataset will be handled from EDA (Exploratory Data Analysis) to Machine Learning algorithms.该银行数据是从Kaggle检索的&#xff0c;将详细介绍如何将数据集从EDA(探索性…

结构型模式之组合

重新看组合/合成&#xff08;Composite&#xff09;模式&#xff0c;发现它并不像自己想象的那么简单&#xff0c;单纯从整体和部分关系的角度去理解还是不够的&#xff0c;并且还有一些通俗的模式讲解类的书&#xff0c;由于其举的例子太过“通俗”&#xff0c;以致让人理解产…

计算机网络原理笔记-三次握手

三次握手协议指的是在发送数据的准备阶段&#xff0c;服务器端和客户端之间需要进行三次交互&#xff1a; 第一次握手&#xff1a;客户端发送syn包(synj)到服务器&#xff0c;并进入SYN_SEND状态&#xff0c;等待服务器确认&#xff1b; 第二次握手&#xff1a;服务器收到syn包…

Bigmart数据集销售预测

Note: This post is heavy on code, but yes well documented.注意&#xff1a;这篇文章讲的是代码&#xff0c;但确实有据可查。 问题描述 (The Problem Description) The data scientists at BigMart have collected 2013 sales data for 1559 products across 10 stores in…

数据特征分析-帕累托分析

帕累托分析(贡献度分析)&#xff1a;即二八定律 目的&#xff1a;通过二八原则寻找属于20%的关键决定性因素。 随机生成数据 df pd.DataFrame(np.random.randn(10)*10003000,index list(ABCDEFGHIJ),columns [销量]) #避免出现负数 df.sort_values(销量,ascending False,i…

dt决策树_决策树:构建DT的分步方法

dt决策树介绍 (Introduction) Decision Trees (DTs) are a non-parametric supervised learning method used for classification and regression. The goal is to create a model that predicts the value of a target variable by learning simple decision rules inferred f…