一、概念
1,数据分析:对已有数据进行分析。
2,数据挖掘技术可以帮助我们更好的发现事物之间的规律。
有关数据挖掘的应用:啤酒与尿布,发现疾病与症状或者疾病与药物之间的规律等。
数据挖掘的过程:
1)定义目标:清晰需求,定义目标。
2)获取数据(可以通过爬虫去采集数据或者下载一些统计网站发布的数据)。
3)数据探索:对数据初步研究。
4)数据预处理:数据清洗——去掉脏数据,数据集成——将不同来源的数据放在一起,数据变换——规范化,数据归约——精简的过程。
5)数据建模:分类、聚类、关联、预测。
6)模型评价与发布。
二、数据分析与挖掘相关模块的简介、基本使用
1、numpy可以高效地处理数据、提供数组支持、很多模块都依赖于numpy模块。
import numpy
#创建一维数组
x=numpy.array(["a","8","7"])
#创建二维数组
y=numpy.array([[3,2,1],[2,4,6],[7,6,9]])
#数组中的排序sort()函数,即使是字符串也是可以排序的
x.sort()
y.sort()
#取最大值和最小值
y1=y.max()
y2=y.min()
#数组和列表在某一程度上是可以相互转换的,但是使用数组运算效率是比较高的
#切片:取某一片段之间的元素
#数组[起始下标:最终下表标+1],哪边不写就表示到头
x1=x[1:3]
x2=x[:2]
x3=x[1:]
#给模块取别名
#import numpy as np
2、pandas(核心模块)主要用于数据探索和数据分析
1)使用pandas创建数据
import pandas as pda
'''
series索引默认从0开始,行名
dataframe类型的数据,有行有列
'''
a=pda.Series([8,9,2,1])
print(a)
'''
运行结果:
0 8
1 9
2 2
3 1
dtype: int64
'''
b=pda.Series([8,9,2,1],index=["one","two","three","four"])
print(b)
'''
运行结果
one 8
two 9
three 2
four 1
dtype: int64
'''
c = pda.DataFrame([[5,6,2,3],[8,5,6,3],[6,4,31,2]])
print(c)
'''
运行
0 1 2 3
0 5 6 2 3
1 8 5 6 3
2 6 4 31 2
'''
d = pda.DataFrame([[5,6,2,3],[8,5,6,3],[6,4,31,2]],columns=["one","two","three","four"])#指定列名
print(d)
'''
运行:
one two three four
0 5 6 2 3
1 8 5 6 3
2 6 4 31 2
'''
#还可以通过字典类型数据来创建数据框
e=pda.DataFrame({
"one":4,#行数不够,自动填充
"two":[6,2,3],#多个行数
"three":list(str(982))
})
print(e)
'''
运行:
one two three
0 4 6 9
1 4 2 8
2 4 3 2
'''
d.head()#头部数据,默认前五行,如果不够全部取完
d.head(2)#取前2行
d.tail()#尾部数据,默认是后5行
d.tail(2)#取后2行数据
DataFrame中的一个describe()函数输出内容的解释
describe()函数是按列统计,count是对列中元素个数的统计;mean是对元素平均值的统计;std表示标准差,min代表这一列中的最小值;25%,50%,75%表示分位数;max表示这一列中的最大值。
d1=d.describe()
print(d1)
'''
运行:
one two three four
count 3.000000 3.0 3.000000 3.000000
mean 6.333333 5.0 13.000000 2.666667
std 1.527525 1.0 15.716234 0.577350
min 5.000000 4.0 2.000000 2.000000
25% 5.500000 4.5 4.000000 2.500000
50% 6.000000 5.0 6.000000 3.000000
75% 7.000000 5.5 18.500000 3.000000
max 8.000000 6.0 31.000000 3.000000
'''
分位数的概念:
分位数又称分位点,是指将一个随机变量的概率分布范围分为几个等份的数值点,常用的有中位数(即二分位点)、四分位数、百分位数等。
2)使用pandas读取数据
#导入CSV格式的数据
i=pda.read_csv("D:/test1.csv")
i.describe()#按照列统计
i.sort_values(by="列名")#按照某一列进行排序
#导入excel格式的数据
j=pda.read_excel("D:/test2.excel")
python3使用pymysql模块链接数据库
下面是导入Mysql数据库中的数据(在此之前已经安装mysql,mysql可视化工具navicat,建立数据库mydb,创建数据表student)
import pymysql
import pandas as pda
conn = pymysql.connect(host="localhost",user="root",
password="1",db="mydb")
sql="select * from student"
data=pda.read_sql(sql,conn)
print(data)
同时,使用pandas,可以直接从html页面中加载对应table表格中的数据,但是在使用read_html()之前,需要先安装html5lib模块与beautifulsoup4模块。
#读取本地网页中或者本地网页表格中的数据
w = pda.read_html("https://book.douban.com/")