一、概念

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/")