用python进行数据分析(数据理解)

python作为当前主流的语言之一,他的功能是非常强大的。不论是在游戏行业还是数据分析行业还是软件开发啥的好像都可以用python,但作为一个数据分析师,并不需要用到他的全部功能。

只是想要达到“能够用python完成数据分析工作”的效果,所以整理了这个随笔。


一、数据导入

数据的导入是进行数据分析的第一步骤,一般提取的数据由文本格式(txt)、表格格式(csv/excel)及数据库文件(dmp/直连)。

  (1)导入csv

因为我个人习惯了r的相关数据结构和操作,所以我用pandas导入csv数据,可以直接导入DataFrame类型的数据。这种方法更接近R的操作方法,导入的数据类型也更便于操作。

 # -*- coding: utf-8 -*-
 import pandas as pd
 data=pd.read_csv(open('d:/data/datafile.csv'))
 print(data.head(10))

很简单,第一行读库,第二行导入,第三行查看样例数据。

  (2)导入txt

这个我不常用。在网上找了一下:

1 data2 = open('E:\data\datafile.txt')
2 s=data2.read()

(3)连接数据库

大数据嘛,当然是连接数据库咯

#-*- coding:utf-8 -*-

import numpy as np
import pandas as pd
import matplotlib.pylab as plt
import mysql.connector
conn = mysql.connector.connect(host='localhost',
                        user='root',
                        db='python')#链接本地数据库
sql = 'select * from taob'#sql语句
data = pd.read_sql(sql,conn)#获取数据
print(data.describe())

 (4)读取excel

备注:excel可以读中文,csv默认不行,要指定编码

# -*- coding: utf-8 -*-
import pandas as pd
 
from datetime import date,datetime
 
def read_dataFrame(fileName,sheetName ='' ):
    print('File:',end='')
    print(fileName)
    print('Sheet:',end='')
    print(sheetName)
    df = pd.read_excel(io=fileName, sheet_name=sheetName, header=0, skiprows=None, 
                       skip_footer=0, index_col=None, names=None, 
                       usecols=None, parse_dates=False, date_parser=None, 
                       na_values=None, thousands=None, convert_float=True, 
                       converters=None, dtype=None, true_values=None, 
                       false_values=None, engine=None, squeeze=False)
 
 df = append_dataFrame(df)
 path = 'C://input//' 
 fileName = path+'input.xlsx' 
 data = read_dataFrame(fileName,'sheet1')


--------------------- 

二、数据理解

为得到更准确的结果,必须理解数据的特征、分布情况,以及需要解决的问题,以便建立和优化算法模型。导入数据后,除了查看样例数据,还要对数据分布和特征进行基本的理解。

基本的数据理解,包括数据样例、数据行数和列数、字段类型、描述统计、分类指标分布概况、相关矩阵、高斯分布检验之类的。

1 print(data.head(10))#显示data的前十行
2 print(data.shape)#显示data的行数和列数
3 print(data.dtypes)#显示data的各字段的数据类型
4 print(data.describe())#进行data的各字段的描述性统计
5 print(data.groupby('colname1').size())#统计data的1字段每一类指标有多少记录
6 print(data.corr(method='pearson'))#计算data的各字段相关性矩阵
7 print(data.skew())#data的高斯分布检验,其大小表示左偏和右偏,接近0为偏差小

看起来是一行一个操作,真的是很简洁。

在这个过程,要注意发现和思考问题,特别是灵光一闪的解决方案要记下来,对后续的问题有较大的参考价值。

三、可视化

为了生成最优化的算法模型,必须对数据进行理解。最快、最有效的方法就是通过图形来加强对数据的理解。

单一图表可以直观地展示数据的分布,一般使用直方图、密度图和箱线图进行展示。这三种图实际上是展示了相似的内容,直方图可以看数据分布的分段分布图,密度图可以看数据分布的抽象分布图,箱线图可以看数据分布的统计情况。

对我而言,这三个图基本能解决所有的问题。当然python也肯定有些花里胡哨的图形功能,需要的时候再查一下。

  (1)直方图

直方图又称质量分布图,是一种统计报告图,由一系列高度不等的纵向条纹或线段表示数据的分布情况。一般用横轴表示数据类型,纵轴表示分布情况。可以用来只管展示每个变量的分布状况,通过图表可以直观地看到数据是高斯分布、指数分布还是偏态分布。

1 import matplotlib.pyplot as plt
2 data.hist()#直方图
3 plt.show()#绘图

  (2)密度图

密度图是一种表现与数据值对应的边界或域对象的图形表示方法,一般用于展现连续变量的分布情况。密度图像类似直方图的抽象表示,用的是平滑的线来描述数据的方法。这也是一种用来展示数据分布的图表。

1 import matplotlib.pyplot as plt
2 data.plot(kind='density',subplots=True,layout=(3,3),sharex=False)#3x3的密度图
3 plt.show()#绘图

  (3)箱线图

箱线图是一种用于显示一组数据分散情况的统计图,用于显示数据分布状态。几条横线分别是上边缘、上四分位数、中位数、下四分位数、下边缘,横线为数据的伸展情况,游离边缘线之外的点为异常值。

1 import matplotlib.pyplot as plt
2 data.plot(kind='box',subplots=True,layout=(3,3),sharex=False)#3x3的箱线图
3 plt.show()#绘图

(4)散点矩阵图

花里胡哨的,但是对线性回归好用。

该图表示因变量随自变量变化的大致趋势,据此可以选择合适的函数进行拟合。同时考察多个变量的相关关系,对于进行多元线性回归尤为重要。

1 from pandas.plotting import scatter_matrix
2 scatter_matrix(data)
3 plt.show()

Python经验分享

学好 Python 不论是就业还是做副业赚钱都不错,但要学会 Python 还是要有一个学习规划。最后大家分享一份全套的 Python 学习资料,给那些想学习 Python 的小伙伴们一点帮助!

Python学习路线

这里把Python常用的技术点做了整理,有各个领域的知识点汇总,可以按照上面的知识点找对应的学习资源。
在这里插入图片描述

学习软件

Python常用的开发软件,会给大家节省很多时间。
在这里插入图片描述

学习视频

编程学习一定要多多看视频,书籍和视频结合起来学习才能事半功倍。
在这里插入图片描述

100道练习题

在这里插入图片描述

实战案例

光学理论是没用的,学习编程切忌纸上谈兵,一定要动手实操,将自己学到的知识运用到实际当中。
在这里插入图片描述
最后祝大家天天进步!!

上面这份完整版的Python全套学习资料已经上传至CSDN官方,朋友如果需要可以直接微信扫描下方CSDN官方认证二维码免费领取【保证100%免费】。

  • 0
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

程序员二飞

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值