Pathon做数据分析
数据分析流程
- 识别需求
识别信息需求是确保数据分析过程有效性的首要条件,可以为收集数据、分析数据提供清晰的目标。 - 收集数据
有目的的收集数据,是确保数据分析过程有效的基础。 - 分析数据(数据清洗)
分析数据是将收集的数据通过加工、整理和分析、使其转化为信息,通常用方法有: - 可视化
将数据变得一目了然
老七种工具,即排列图、因果图、分层法、调查表、散布图、直方图、控制图;
新七种工具,即关联图、系统图、矩阵图、KJ法、计划评审技术、PDPC法、矩阵数据图。
概念(定性数据和定量数据)
定性数据和定量数据的区别如下:
- 是否具有数值特征:
- 定性数据没有数值特征,不能对其数据进行数学运算。定性数据分为分类数据和顺序数据两类。
- 定类数据:如反映“职业”、“教育程度”等现象的属性特点的数据,只能用来区分事物,而不能用来表明实物之间的大小、优劣关系。
- 定序数据:如象“教育类别”这样的变量称为顺序变量,相应的观察结果就是顺序数据。说明事物有序类别的一个名称,这类变量的具体表现就是顺序数据。顺序数据的数据之间虽然可以比较大小,却无法计算相互之间的大小、高低或优劣的距离。
- 定量数据:反映“天气温度”、“月收入”等变量可以用数值表示其观察结果,而且这些数值具有明确的数值含义,不仅能分类而且能测量出来具体大小和差异。这些变量就是定量变量也称数值变量,定量变量的观察结果成为定量数据。
- 定性数据没有数值特征,不能对其数据进行数学运算。定性数据分为分类数据和顺序数据两类。
- 计量精度不同
- 定性数据只能粗略区分事物特征,无法计算比较相互间大小,计量精度不高。
- 定量数据作为统计研究的主要资料, 不仅能分类而且能测量出来具体大小和差异,其计量精度远远高于定性数据。
- 统计方法不同
- 定性数据多采用描述性统计分析方法,非参数检验等。
- 定量数据可采用描述性统计分析,也可采用推断性统计分析、参数检验或统计模型。
例:
这是一列定性数据,但是很明显,这列数据是需要计算建模的数据
转换为具有运算特征的定量数据
x['Biweekly High Rate']=x['Biweekly High Rate'].map(lambda v:v.replace("$",'')).astype(float)
思路
在读取文件时可以用导入csv包 (专门处理csv)
它会把每一条数据都包装成一个list 以便下一步操作
with open('ebola.csv','r') as a:#按每一行读取for i in csv.reader(a):print(i) #每一条数据都是一个list#读取为字典型 样式:OrderedDict([('Year', '1968'), ('Males', '1118.5')])#可以使用 i['Year']取值for i in csv.DictReader(a):print(i)
在数据分析时经常遇到排序问题,最常见的就是利用时间对数据进行排序
如果要用时间作图作为x轴或者y轴 一定要使用datetime进行时间转换(原因请看下一个案例)
转换时间的方式
a='2014-09-26'
x=time.strptime(a,'%Y-%m-%d')
z=dt.datetime.strptime(a,"%Y-%m-%d").date()
y=dt.datetime.strptime(a,"%Y-%m-%d").time()
两种方法都可以排序
import timedatalist=sorted(data,key=lambda x:time.strptime(x[2],'%Y-%m-%d'),reverse=True)
print(datalist)
*使用matplotlib.pyplot绘图 (图像显示错误)
这个问题很重要显示错误和显示不出,可能都是这个问题一定要时刻注意
#y轴需要的数据#未修改代码
#gy=[x[3] for x in Guinea]
#ny=[x[3] for x in Nigeria]
#sy=[x[3] for x in SierraLeone]
#修改代码
gy=[float(x[3]) for x in Guinea]
ny=[float(x[3]) for x in Nigeria]
sy=[float(x[3]) for x in SierraLeone]plt.plot(gx,gy,'r-')plt.show()
下图为修改代码之前 发现y轴的数据,并没有自动解析 一个段一个段出来
分析:
仔细看了一下学习时候的代码,发现在使用matplotlib.pyplot绘图时,x轴或者y轴的数据都是可以做递增的数据 比如 坐标x轴上有:1,2,3,4,5,6,7,8 x轴上的数就可以解析为 2 4 6 8
然而原始数据不做处理的时候,类型都是str,可能是str不能做出自动解析
数据分析必用工具 pandas
首先了解pandas的索引方式极其基本使用方法以便数据的清洗
主要有两种: .loc标签索引 .iloc位置索引 (先按标签索引进行尝试操作,再位置)
现在有一个pandas数据df
#取出第一行
df[0:1]
#利用列名
df[ ['列名1','列名2' ] ]
#最常用的位置索引方法
df.iloc[0:2,0] #取出 0-2(不包括2)行的第一列数据
pandas怎么精确的取出带有什么数据的某一行或者一列的值
ps:比如取出 索引为长郡中学的行
a.loc[a.index == '长郡中学']
ps:比如取出 索引为长郡中学或者长沙一中的行,支持运算符 &(and) |(or)
这里注意:里面是两个元组样式的,否则报错
a[ (a.index == '长郡中学') | (a.index=='长沙市第六中学')]
当然也支持这样:
a[ a['列名']==? ]
#pandas-如何得到某一个值所在的行
df[df['列名'].isin([相应的值])]
修改索引名,列名,数据合并
这一点顺便一提,很多时候不同数据整合要统一才能使用merge()合并
#使用rename()修改
a=dd.count().rename(index={'师大附中':'湖南师大附中','长沙市第一中学':'长沙市一中'},columns={'序号':'人数'})
还有一种方法时候修改大多数索引 set_index()
数据合并
参考sql中的inner left_inner right_inner
#参数说明:数据1 数据2 左键 右键 连接方式 默认以重合列做键
pd.merge(a,b,left_on='key1',right_on='key2',how='right')
pandas带有自动转换类型的方法
#ps:data[''].astype(int)#时间pd.to_datetime(data_us['dt'])
DataFrame.plot(*args, **kwargs)
参数解读(官方)
kind:str
str:
‘line’:折线图(默认)
‘bar’:垂直条形图
‘barh’:水平条形图
‘hist’:直方图
‘box’:箱线图
‘kde’:内核密度估计图
‘density’:与’kde’相同
‘area’:面积图
‘pie’:饼图
‘scatter’:散点图
‘hexbin’:六边形图。grid : boolean(是否显示网格)
fontsize int(字体大小)
ax(可以用来设置画布大小)
stacked:boolean(是否纵向显示数据)
例:
DataFrame.hist()&Series.hist()
常用参数
- bins:int
分成几块 - by:对象,可选
如果通过,则用于形成单独组的直方图。 - figsize 元组
- alpha:0-1 透明度
- color:srt 颜色
- sharex 共享(x轴设为一样的)
要创建的图形的尺寸(以英寸为单位)
例:
Pathon做数据分析相关推荐
- 创业公司如何做数据分析(一)开篇
在过去的一年里,笔者加入了一家移动互联网创业公司,工作之一便是负责数据业务的建设,陆陆续续完成了一些数据系统的实现,来满足公司的数据需求.在创业公司中做数据相关的事情,而且是从零做起,肯定不像很多大公 ...
- python做数据分析的包_用Python做数据分析,Numpy,Pandas,matp
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 用Python做数据分析,Numpy,Pandas,matplotlib是怎么也绕不开的三个包,我最开始学习pandas是看的<利用Python进行 ...
- 一个为制造业而生的AI助手,普通员工向它提问就能做数据分析
赖可 发自 凹非寺 量子位 报道 | 公众号 QbitAI 制造业正面临着新境遇. 产业链.供应链周期变短,不确定因素增加.数字化转型呼之欲出,AI落地的需求越来越明显. 怎样让AI技术切实创造效益呢 ...
- python数据分析的主要流程-用Python语言做数据分析基本思路和流程
当下用PYTHON做数据分析实在是太火了!大多数招聘信息里都要求应聘者会使用PYTHON做数据分析.PYTHON语言功能确实很强大,俗称"胶水语言".那么我们大多数职场人士真的有机 ...
- python 数据分析学什么-利用Python做数据分析 需要学习哪些知识
根据调查结果,十大最常用的数据工具中有八个来自或利用Python.Python广泛应用于所有数据科学领域,包括数据分析.机器学习.深度学习和数据可视化.不过你知道如何利用Python做数据分析吗?需要 ...
- 用python做数据分析,安装包一次到位
用python做数据分析 安装包一次到位 pip install numpy pandas scipy matplotlib sklearn lxml re requests bs4 tushare ...
- 创业公司做数据分析(三)用户行为数据采集系统 (转)
http://blog.csdn.net/zwgdft/article/details/53542597 作为系列文章的第三篇,本文将重点探讨数据采集层中的用户行为数据采集系统.这里的用户行为,指的是 ...
- 搭建一个jupyter站点做数据分析吧
jupyter jupyter 是一个非常适合做数据分析的工作台.为了可以使得jupyter可以运行在服务器上访问生产环境的数据,今天我要在服务器上搭建一个jupyter站点. 容器 为了不和线上的其 ...
- 你还在用Python做数据分析么?
被大数据分析算法刷屏的各种推荐,刷个抖音,被频繁的推荐可能认识的人,其中就包括分手一年多的前女友:淘宝闲逛,推送的都是你妈妈搜索过的中老年大码女装:微博浑水,你多看了两秒钟"十二星座理想中的 ...
最新文章
- 廉颇老矣,尚能饭否?响鼓重擂,上阵杀敌!
- 【软件工程】CMMI 能力成熟度模型集成 ( 简介 | 相关术语 | CMMI 等级评估次序 )
- 使用vue-axios请求geoJson数据报错的问题
- spring boot web项目_阿里技术专家带你使用Spring框架快速搭建Web工程项目
- 自己动手写Docker系列 -- 5.3实现logs命令查看容器日志
- Android Studio安装以及Fetching android sdk component information超时的解决方案
- 获取Repeater中Footer/HeaderTemplate 中的控件
- MLK-12Q-DC48多路直流电能表说明书
- 基于FPGA的SDRAM控制器设计(4)
- thon中的全局变量
- 浏览器被hao360劫持解决办法
- 我家猫老喜欢和我躲猫猫,我用Python赶忙写了个猫脸检测器。在哪里都逃不出我的手心。
- 小白友好——C++基于EeayX简单开发的豪华版贪吃蛇[单人模式+双蛇对战+闯关模式(地图跳转)+排行榜+音乐]
- GUID 分区表详解
- android 市场 历史版本,安卓市场旧版本
- 异常:java.lang.LinkageError: loader constraint violation: when resolving interface method javax.servl
- OOM和StackOverFlow的区别
- 高中教师计算机面试什么时候,高中信息技术教师资格证备考经验分享(面试篇)...
- python组合键触发_Python3 tkinter基础 Frame bind 捕捉多键同时按
- a股自动下单 python_python实现A股自动盯盘(基于baostock)