手把手教你使用Python做数据分析
一、数据分析是什么
数据分析是指用适当的统计分析方法对收集来的大量数据进行分析,将它们加以汇总和理解并消化,以求最大化地开发数据的功能,发挥数据的作用,使得数据的价值最大化
二、数据分析是做什么的
数据分析是为了提取有用信息和形成结论而对数据加以详细研究和概括总结的过程。 数据分析的数学基础在20世纪早期就已确立,但直到计算机的出现才使得实际操作成为可能,并使得数据分析得以推广。
数据分析使用适当的方法对收集来的大量数据进行分析,帮助人们做出判断,以便采取适当的行动
三、为什么学习数据分析
四、数据分析实现流程
五、数据分析环境的搭建
1. Anaconda
官网:https://www.anaconda.com 下载安装对应安装包即可
注意: 安装目录不可以有中文和特殊符号
Anaconda集成好了数据分析和机器学习中所需要的全部环境
2. Jupyter
3. Jupyter的基本使用
启动: 在终端中输入:jupyter notebook,按下回车即可
新建文件: New –>> python3
Cell(代码块)有两种模式
快捷键
添加cell:a或b
删除:x
修改cell的模式
my执行cell内代码:shift+enter
自动补全:tab
打开帮助文档:shift+tab
六、如何用Python进行数据分析
在Python中我们数据分析离不开以下三剑客
Numpy模块
1. Numpy的创建
array()创建一个一维数组
array() 创建一个多维数组
zero() 创建一个多维数组
ones() 创建一个多维数组
linspace() 创建一维的等差数列数组
arange() 创建一维的等差数列数组
random.randint() 创建随机的多维数组
2. Numpy的常用属性

3. Numpy的索引和切片


4. Numpy的矩阵操作

级联操作

常用的聚合操作

常用的统计函数
mean((x-x.mean())**2。换句话说,标准差就是方差的平方根。
Pandas模块
1. 为什么学习Pandas
Numpy能够帮助我们处理的是数值型的数据,而Pandas可以帮我们处理除数值型以外的其他类型数据,
2. Pandas的数据结构
3. Series操作
3.1 Series的创建

index用来指定显式索引,可以增强Series的可读性。

也可以使用字典作为数据源。

3.2 Series的索引和切片

3.3 Series的常用属性

3.4 Series的常用方法
head(), tail()unique()isnull(), notnull()
3.5 Series的算数运算
索引一致的元素进行算数运算否则补空

4. DataFrame操作
4.1 DataFrame的创建

可使用 ndarray 创建。

也可以使用字典作为数据源。

index 用来指定显式索引,可以增强 DataFrame 的可读性。

4.2 DataFrame索引和切片
iloc: 通过隐式索引取行
loc: 通过显式索引取行
对行进行切片
对列进行切片

4.3 DataFrame常用属性

4.4 DataFrame的常用方法
同Series
4.5 DataFrame的算数运算
同Series
4.6 DataFrame的级联和合并
级联操作
接下来我们伪造两组DataFrame数据。

使用pd.concat()

PS:如果想要保留数据的完整性必须使用参数 join='outer'(外连接)
使用 pd.append()

合并操作
pd.merge()
merge 与 concat 的区别在于,merge 需要依据某一共同列来进行合并。pd.merge() 合并时,会自动根据两者相同 column 名称的那一列作为 key 来进行合并。一对一合并
首先我们来伪造两组 DataFrame。

使用 pd.merge()

一对多合并
首先我们来伪造两组 DataFrame。

使用 pd.merge()

多对多合并
首先我们来伪造两组 DataFrame。

使用 pd.merge()

merge()方法还可以使用left_on参数和right_on参数哦,how这个参数也可以指定不同的连接方式。
5. 基于Pandas的数据清洗
5.1 为什么需要做数据清洗
5.2 处理缺失值
为什么在数据分析中需要用到浮点类型的空而不是对象类型的?
None+1会报 TypeError,而 np.nan+1 结果是 nan。它不会干扰或者中断运算。在Pandas中如果数据中遇到了None形式的空值则Pandas会将其强转成NaN的类型。
缺失值处理操作
我们来伪造一组带有缺失值的数据。

方法1:对缺失值进行过滤(删除空所在的行数据)
isnull() 搭配 any()
notnull() 搭配 all()
dropna()可以直接将缺失的行或者列数据进行删除
fillna() 对缺失值进行填充
5.3 处理重复数据
我们来伪造一组带有重复值的数据。

drop_duplicates()
5.4 处理异常值
异常值是什么?
接下来我们伪造一组带有异常值的数据。

然后我们来实现异常值的清洗。

6. Pandas高级操作
6.1 替换操作
to_replace=15, value='value'to_replace={列标签: 替换值}, value='value'to_replace=[], value=[]to_replace={to_replace: value, to_replace: value}首先我们来伪造一组DataFrame。

使用 replace()

6.2 映射操作
首先我们来伪造一组DataFrame。

使用 map()

例:超过3000部分的薪资缴纳50%的税,计算每个人的税后薪资

6.3 分组聚合操作
groupby() 函数groups 属性查看分组情况分组
接下里我们伪造一组DataFrame。

使用 groupby() 和 groups

聚合

高级数据聚合
groupby() 分组后,也可以使用 transform() 和 apply() 提供自定义函数实现更多的运算df.groupby('item')['price'].sum() <==> df.groupby('item')['price'].apply(sum)transform() 和 apply() 都会进行运算,在 transform() 或者 apply() 中传入函数即可transform() 和 apply() 也可以传入一个 lambda 表达式
6.4 数据加载


matplotlib模块
首先我们倒入全局的模块

1. 绘制线形图
1.1 绘制单条和多条线形图

1.2 设置坐标系的比例

1.3 设置图例

1.4 设置轴的标识

1.5 图例保存

1.6 曲线的样式和风格

还有其他多种参数的样式哦,详情请见库的源代码。
2. 绘制柱状图

其余用法和线形图类似。
3. 绘制直方图
plt.hist()的参数
bins:可以是一个bin数量的整数值,也可以是表示bin的一个序列。默认值为10normed:如果值为True,直方图的值将进行归一化处理,形成概率密度,默认值为Falsecolor:指定直方图的颜色。可以是单一颜色值或颜色的序列。如果指定了多个数据集合,例如DataFrame对象,颜色序列将会设置为相同顺序。如果未指定,将会使用一个默认的线条颜色orientation:通过设置 orientation 为 horizontal 创建水平直方图。默认值为 vertical
其余用法和线形图类似。
4. 绘制饼图
pie(),饼图也只有一个参数 x
其余用法和线形图类似。
5. 散点图
scatter(), 因变量随自变量而变化的大致趋势
其余用法和线形图类似。
PS:欢迎提出宝贵意见,如想询问技术问题可以留言区留言或加开发人员的微信(微信号:x118422)进行咨询~