数据分析是指用适当的统计分析方法对收集来的大量数据进行分析,将它们加以汇总和理解并消化,以求最大化地开发数据的功能,发挥数据的作用,使得数据的价值最大化
数据分析是为了提取有用信息和形成结论而对数据加以详细研究和概括总结的过程。 数据分析的数学基础在20世纪早期就已确立,但直到计算机的出现才使得实际操作成为可能,并使得数据分析得以推广。
数据分析使用适当的方法对收集来的大量数据进行分析,帮助人们做出判断,以便采取适当的行动
官网:https://www.anaconda.com 下载安装对应安装包即可
注意: 安装目录不可以有中文和特殊符号
Anaconda集成好了数据分析和机器学习中所需要的全部环境
启动: 在终端中输入:jupyter notebook
,按下回车即可
新建文件: New -->> python3
Cell(代码块)有两种模式
快捷键
添加cell:a
或b
删除:x
修改cell的模式
m
y
执行cell内代码:shift+enter
自动补全:tab
打开帮助文档:shift+tab
在Python中我们数据分析离不开以下三剑客
array()
创建一个一维数组array()
创建一个多维数组zero()
创建一个多维数组ones()
创建一个多维数组linspace()
创建一维的等差数列数组arange()
创建一维的等差数列数组random.randint()
创建随机的多维数组级联操作
常用的聚合操作
常用的统计函数
mean((x-x.mean())**2
。换句话说,标准差就是方差的平方根。Numpy能够帮助我们处理的是数值型的数据,而Pandas可以帮我们处理除数值型以外的其他类型数据,
index用来指定显式索引,可以增强Series的可读性。
也可以使用字典作为数据源。
head()
, tail()
unique()
isnull()
, notnull()
索引一致的元素进行算数运算否则补空
可使用 ndarray 创建。
也可以使用字典作为数据源。
index
用来指定显式索引,可以增强 DataFrame 的可读性。
iloc: 通过隐式索引取行
loc: 通过显式索引取行
对行进行切片
对列进行切片
同Series
同Series
级联操作
接下来我们伪造两组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这个参数也可以指定不同的连接方式。
为什么在数据分析中需要用到浮点类型的空而不是对象类型的?
None+1
会报 TypeError
,而 np.nan+1
结果是 nan
。它不会干扰或者中断运算。在Pandas中如果数据中遇到了None形式的空值则Pandas会将其强转成NaN的类型。
缺失值处理操作
我们来伪造一组带有缺失值的数据。
方法1:对缺失值进行过滤(删除空所在的行数据)
isnull()
搭配 any()
notnull()
搭配 all()
dropna()
可以直接将缺失的行或者列数据进行删除fillna()
对缺失值进行填充我们来伪造一组带有重复值的数据。
drop_duplicates()
异常值是什么?
接下来我们伪造一组带有异常值的数据。
然后我们来实现异常值的清洗。
to_replace=15, value='value'
to_replace={列标签: 替换值}, value='value'
to_replace=[], value=[]
to_replace={to_replace: value, to_replace: value}
首先我们来伪造一组DataFrame。
使用 replace()
首先我们来伪造一组DataFrame。
使用 map()
例:超过3000部分的薪资缴纳50%的税,计算每个人的税后薪资
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
表达式首先我们倒入全局的模块
还有其他多种参数的样式哦,详情请见库的源代码。
其余用法和线形图类似。
plt.hist()的参数
bins
:可以是一个bin数量的整数值,也可以是表示bin的一个序列。默认值为10normed
:如果值为True,直方图的值将进行归一化处理,形成概率密度,默认值为Falsecolor
:指定直方图的颜色。可以是单一颜色值或颜色的序列。如果指定了多个数据集合,例如DataFrame对象,颜色序列将会设置为相同顺序。如果未指定,将会使用一个默认的线条颜色orientation
:通过设置 orientation
为 horizontal
创建水平直方图。默认值为 vertical
其余用法和线形图类似。
pie()
,饼图也只有一个参数 x其余用法和线形图类似。
scatter()
, 因变量随自变量而变化的大致趋势其余用法和线形图类似。
PS:欢迎提出宝贵意见,如想询问技术问题可以留言区留言或加开发人员的微信(微信号:x118422)进行咨询~