当前位置:文档之家› 数据清洗入门

数据清洗入门

CDA数据分析师
ndarray
NumPy的一个关键特性是它的N维数组对象(ndarray),它在Python中是一个大 型数据集的快速的,灵活的容器。 数组使你能够在整个数据块上进行数学运算,且 与对应的纯量元素间操作有相似的语法。
ndarray是一个同种类数据的多维容器,也就是说,它的所有元素都是同类型的。 每一个数组都有一个 shape(表示它每一维大小的元组)和 dtype (一个描述数组 数据类型的对象)。
Life is short, you need python
数据清洗 Numpy & Pandas
讲师:张淑娟 2019.3.14
数据分析流程
> 数据分析流程:
确定数据分析的目的
获取数据
清洗数据
探索数据
建模分析
结果交流
明确的分析 目的就像是 瞄准了正确 的靶心,才 能使后续的 动作有意义
收集原始数据, 数据来源可能 是丰富多样的, 格式也可能不 尽相同
CDA数据分析师
Pandas概述
Pandas 是 Python 进行数据分析的基础包,基于 NumPy 构建,该工具是为了解决 数据分析任务而创建的。
Pandas 纳入了大量库和一些标准的数据模型,提供了高效地操作大型数据集所需的 函数和方法,能使我们快速便捷地处理数据。这也是使 Python 成为强大而高效的数据 分析环境的重要因素之一。
Numarray,它拥有一些额外的功能。2005 年,Travis Oliphant 通过将 Numarray 的功能集 成到 Numeric 包中来创建 NumPy 包。
CDA数据分析师
Numpy安装
方法一: 标准的 Python 发行版不会与 NumPy 模块捆绑在一起。一个轻量级的替代方法是使用
CDA数据分析师
Pandas中的数据结构
Series:一维数组,与Numpy中的一维array类似。二者与Python基本的数据结构 List也很相近,其区别是:List中的元素可以是不同的数据类型,而Array和Series中则只 允许存储相同的数据类型,这样可以更有效的使用内存,提高运算效率。
CDA数据分析师
Pandas常用函数&方法
创建对象
pd.DataFrame(np.random.rand(20,5)): 创建20行5列的随机数组成的DataFrame对象 pd.Series(my_list): 从可迭代对象my_list创建一个Series对象 df.index = pd.date_range('1900/1/30', periods=df.shape[0]): 增加一个日期索引
CDA数据分析师
Numpy常用函数&方法
数组的维度变换
a.reshape(shape) : 不改变当前数组,依shape生成 a.resize(shape) : 改变当前数组,依shape生成 a.swapaxes(ax1, ax2) : 将两个维度调换,不改变原数组 a.flatten() : 对数组进行降维,返回折叠后的一维数组
Time- Series:以时间为索引的Series。 DataFrame:二维的表格型数据结构。很多功能与R中的data.frame类似。可以将 DataFrame理解为Series的容器。以下的内容主要以DataFrame为主。 Panel :三维的数组,可以理解为DataFrame的容器。
CDA数据分析师
CDA数据分析师
Pandas常用函数&方法
数据选取
df[col]:根据列名,并以Series的形式返回列 df[[col1, col2]]:以DataFrame形式返回多列 s.iloc[0]:按位置选取数据 s.loc['index_one']:按索引选取数据 df.iloc[0,:]:返回第一行 df.iloc[0,0]:返回第一列的第一个元素
流行的Python 包安装程序 pip 来安装 NumPy。 在 CMD 或命令行中执行: pip install numpy
方法二: 使用 Anaconda 的 Python 发行版,这个发行版已经提前为我们安装了各类的科学计
算需要的第三方包。我们直接使用就可以了。(推荐)
CDA数据分析师
Numpy特性
CDA数据分析师
Pandas常用函数&方法
导出数据
df.to_csv(filename):导出数据到CSV文件 df.to_excel(filename):导出数据到Excel文件 df.to_sql(table_name, connection_object):导出数据到SQL表 df.to_json(filename):以Json格式导出数据到文本文件
CDA数据分析师
Numpy常用函数&方法
我们使用如下缩写: a:任意的Numpy ndarray对象
numpy约定俗成的导入方式: import numpy as np
CDA数据分析师
Numpy常用函数&方法
ndarray数组的创建
np.arange(n) ; 元素从0到n-1的ndarray类型 np.ones(shape): 生成全1数组 np.zeros((shape), dtype = np.int32) : 生成int32型的全0 np.full((shape), val): 生成全为val np.eye(n) : 生成单位矩阵 np.ones_like(a) : 按数组a的形状生成全1的数组 np.zeros_like(a): 同理 np.full_like (a, val) : 同理
数组的类型变换
数据类型的转换 :a.astype(new_type) : eg, a.astype (np.float) 数组向列表的转换: a.tolist()
CDA数据分析师
Numpy常用函数&方法
数组的索引和切片
一维数组切片 a = np.array ([9, 8, 7, 6, 5, ]) a[1:4:2] –> array([8, 6]) : a[起始编号:终止编号(不含): 步长]
NumPy 相比于 Python 内建的库和数据类型有以下特性: • 强大、灵活的多维数组对象及丰富的操作 • C 实现,执行效率高 • 线性代数、傅里叶变换、丰富的随机数功能 • 复杂的(广播)功能 Numpy官网:/
CDA数据分析师
Numpy应用
◦ 用于数据整理和清理、子集构造和过滤、转换等快速的矢量化数组运算。 ◦ 常用的数组算法,如排序、唯一化、集合运算等。 ◦ 高效的描述统计和数据合并/运算。 ◦ 用于数据集的合并/连接运算,数据对齐和关系型数据运算。 ◦ 将条件逻辑表述为数组表达式(而不是带有if-elifelse分支的循环) ◦ 数据的分组运算(聚合、转换、函数应用等)
CDA数据分析师
Pandas常用函数&方法
数据清理
df.columns = ['a','b','c']:重命名列名 pd.isnull():检查DataFrame对象中的空值,并返回一个Boolean数组 pd.notnull():检查DataFrame对象中的非空值,并返回一个Boolean数组 df.dropna():删除所有包含空值的行 df.dropna(axis=1):删除所有包含空值的列 df.dropna(axis=1,thresh=n):删除所有小于n个非空值的列 df.fillna(x):用x替换DataFrame对象中所有的空值 s.astype(float):将Series中的数据类型更改为float类型 s.replace(1,'one'):用‘one’代替所有等于1的值 s.replace([1,3],['one','three']):用'one'代替1,用'three'代替3 df.rename(columns=lambda x: x + 1):批量更改列名 df.rename(columns={'old_name': 'new_ name'}):选择性更改列名 df.set_index('column_one'):更改索引列 df.rename(index=lambda x: x + 1):批量重命名索引
多维数组索引 a = np.arange(24).reshape((2, 3, 4)) a[1, 2, 3] 表示 3个维度上的编号, 各个维度的编号用逗号分隔
多维数组切片 a [:,:,::2 ] 缺省时,表示从第0个元素开始,到最后一个元素
CDA数据分析师
Numpy常用函数&方法
数组的运算
np.abs(a) np.fabs(a) : 取各元素的绝对值 np.sqrt(a) : 计算各元素的平方根 np.square(a): 计算各元素的平方 np.log(a) np.log10(a) np.log2(a) : 计算各元素的自然对数、10、2为底的对数 np.ceil(a) np.floor(a) :计算各元素的ceiling 值, floor值(ceiling向上取整,floor向下取整) np.exp(a) : 计算各元素的指数值(以e为底) np.sign(a) : 计算各元素的符号值 1(+),0,-1(-)
理顺杂乱的原 始数据,并修 正数据中的错 误,这一步比 较繁杂,但确 是整个分析的 基石
进行探索式分 析,对整个数 据集有个全面 的认识,以便 后续选择何种 分析策略
常常用到 机器学习、 深度学习 等算法
使用报告、 图表等形式 展现出来, 与他人交流
CDA数据分析师
Numpy概述
• NumPy 是 Numerical Python 的简称,是高性能计算和数据分析的基础包。 • Numeric,即 NumPy 的前身,是由 Jim Hugunin 开发的。Jim也开发了另一个包
相关主题