数据清洗入门
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
CDA数据分析师
Numpy常用函数&方法
数组的维度变换
a.reshape(shape) : 不改变当前数组,依shape生成 a.resize(shape) : 改变当前数组,依shape生成 a.swapaxes(ax1, ax2) : 将两个维度调换,不改变原数组 a.flatten() : 对数组进行降维,返回折叠后的一维数组
流行的Python 包安装程序 pip 来安装 NumPy。 在 CMD 或命令行中执行: pip install numpy
方法二: 使用 Anaconda 的 Python 发行版,这个发行版已经提前为我们安装了各类的科学计
算需要的第三方包。我们直接使用就可以了。(推荐)
CDA数据分析师
Numpy特性
CDA数据分析师
ndarray
NumPy的一个关键特性是它的N维数组对象(ndarray),它在Python中是一个大 型数据集的快速的,灵活的容器。 数组使你能够在整个数据块上进行数学运算,且 与对应的纯量元素间操作有相似的语法。
ndarray是一个同种类数据的多维容器,也就是说,它的所有元素都是同类型的。 每一个数组都有一个 shape(表示它每一维大小的元组)和 dtype (一个描述数组 数据类型的对象)。
Pandas常用函数&方法
我们使用如下缩写: df:任意的Pandas DataFrame对象 s:任意的Pandas Series对象
pandas约定俗成的导入方式: import pandas as pd
CDA数据分析师
Pandas常用函数&方法
导入数据
pd.read_csv(filename):从CSV文件导入数据 pd.read_table(filename):从限定分隔符的文本文件导入数据 pd.read_excel(filename):从Excel文件导入数据 pd.read_sql(query, connection_object):从SQL表/库导入数据 pd.read_json( json_string):从JSON格式的字符串导入数据 pd.read_html(url):解析URL、字符串或者HTML文件,抽取其中的tables表格 pd.read_clipboard():从你的粘贴板获取内容,并传给read_table() pd.DataFrame(dict):从字典对象导入数据,Key是列名,Value是数据
CDA数据分析师
Numpy常用函数&方法
Numpy随机数函数
rand(d0, d1, …,dn) : 各元素是[0, 1)的浮点数,服从均匀分布 randn(d0, d1, …,dn):标准正态分布 randint(low, high,( shape)):依shape创建随机整数或整数数组,范围是[ low, high)
数组的类型变换
数据类型的转换 :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[起始编号:终止编号(不含): 步长]
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数据分析师
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):批量重命名索引
CDA数据分析师
Numpy常用函数&方法
Numpy的统计函数
np.sum(a, axis = None) : 依给定轴axis计算数组a相关元素之和 np.mean(a, axis = None) : 同理,计算平均值 np.std(a, axis = None) :同理,计算标准差 np.var(a, axis = None): 计算方差 np.min(a) np.max(a) : 计算数组a的最小值和最大值 np.argmin(a) np.argmax(a) :计算数组a的最小、最大值的下标(注:是一维的下标) np.median(a) : 计算数组a中元素的中位数(中值)
CDA数据分析师
Pandas常用函数&方法
数据选取
df[col]:根据列名,并以Series的形式返回列 df[[col1, col2]]:以DataFrame形式返回多列 s.iloc[0]:按位置选取数据 s.loc['index_one']:按索引选取数据 df.iloc[0,:]:返回第一行 df.iloc[0,0]:返回第一列的第一个元素
理顺杂乱的原 始数据,并修 正数据中的错 误,这一步比 较繁杂,但确 是整个分析的 基石
进行探索式分 析,对整个数 据集有个全面 的认识,以便 后续选择何种 分析策略
常常用到 机器学习、 深度学习 等算法
使用报告、 图表等形式 展现出来, 与他人交流
CDA数据分析师
Numpy概述
• NumPy 是 Numerical Python 的简称,是高性能计算和数据分析的基础包。 • Numeric,即 NumPy 的前身,是由 Jim Hugunin 开发的。Jim也开发了另一个包
Numarray,它拥有一些额外的功能。2005 年,Travis Oliphant 通过将 Numarray 的功能集 成到 Numeric 包中来创建 NumPy 包。
CDA数据分析师
Numpy安装
方法一: 标准的 Python 发行版不会与 NumPy 模块捆绑在一起。一个轻量级的替代方法是使用
CDA数据分析师
Pandas概述
Pandas 是 Python 进行数据分析的基础包,基于 NumPy 构建,该工具是为了解决 数据分析任务而创建的。
Pandas 纳入了大量库和一些标准的数据模型,提供了高效地操作大型数据集所需的 函数和方法,能使我们快速便捷地处理数据。这也是使 Python 成为强大而高效的数据 分析环境的重要因素之一。
Time- Series:以时间为索引的Series。 DataFrame:二维的表格型数据结构。很多功能与R中的data.frame类似。可以将 DataFrame理解为Series的容器。以下的内容主要以DataFrame为主。 Panel :三维的数组,可以理解为DataFrame的容器。
CDA数据分析师
多维数组索引 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常用函数&方法
我们使用如下缩写: 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) : 同理
CDA数据分析师
Pandas中的数Βιβλιοθήκη Baidu结构
Series:一维数组,与Numpy中的一维array类似。二者与Python基本的数据结构 List也很相近,其区别是:List中的元素可以是不同的数据类型,而Array和Series中则只 允许存储相同的数据类型,这样可以更有效的使用内存,提高运算效率。
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格式导出数据到文本文件
NumPy 相比于 Python 内建的库和数据类型有以下特性: • 强大、灵活的多维数组对象及丰富的操作 • C 实现,执行效率高 • 线性代数、傅里叶变换、丰富的随机数功能 • 复杂的(广播)功能 Numpy官网:http://www.numpy.org/
CDA数据分析师
Numpy应用
◦ 用于数据整理和清理、子集构造和过滤、转换等快速的矢量化数组运算。 ◦ 常用的数组算法,如排序、唯一化、集合运算等。 ◦ 高效的描述统计和数据合并/运算。 ◦ 用于数据集的合并/连接运算,数据对齐和关系型数据运算。 ◦ 将条件逻辑表述为数组表达式(而不是带有if-elifelse分支的循环) ◦ 数据的分组运算(聚合、转换、函数应用等)
Life is short, you need python
数据清洗 Numpy & Pandas
讲师:张淑娟 2019.3.14
数据分析流程
> 数据分析流程:
确定数据分析的目的
获取数据
清洗数据
探索数据
建模分析
结果交流
明确的分析 目的就像是 瞄准了正确 的靶心,才 能使后续的 动作有意义
收集原始数据, 数据来源可能 是丰富多样的, 格式也可能不 尽相同
np.linspace(1,10,4): 根据起止数据等间距地生成数组 np.linspace(1,10,4, endpoint = False):endpoint 表示10是否作为生成的元素
CDA数据分析师
Numpy常用函数&方法
常用属性
a.ndim :维度 a.shape :各维度的尺度 a.size :元素的个数 a.dtype :元素的类型 a.itemsize :每个元素的大小,以字节为单位
Numpy常用函数&方法
数组的维度变换
a.reshape(shape) : 不改变当前数组,依shape生成 a.resize(shape) : 改变当前数组,依shape生成 a.swapaxes(ax1, ax2) : 将两个维度调换,不改变原数组 a.flatten() : 对数组进行降维,返回折叠后的一维数组
流行的Python 包安装程序 pip 来安装 NumPy。 在 CMD 或命令行中执行: pip install numpy
方法二: 使用 Anaconda 的 Python 发行版,这个发行版已经提前为我们安装了各类的科学计
算需要的第三方包。我们直接使用就可以了。(推荐)
CDA数据分析师
Numpy特性
CDA数据分析师
ndarray
NumPy的一个关键特性是它的N维数组对象(ndarray),它在Python中是一个大 型数据集的快速的,灵活的容器。 数组使你能够在整个数据块上进行数学运算,且 与对应的纯量元素间操作有相似的语法。
ndarray是一个同种类数据的多维容器,也就是说,它的所有元素都是同类型的。 每一个数组都有一个 shape(表示它每一维大小的元组)和 dtype (一个描述数组 数据类型的对象)。
Pandas常用函数&方法
我们使用如下缩写: df:任意的Pandas DataFrame对象 s:任意的Pandas Series对象
pandas约定俗成的导入方式: import pandas as pd
CDA数据分析师
Pandas常用函数&方法
导入数据
pd.read_csv(filename):从CSV文件导入数据 pd.read_table(filename):从限定分隔符的文本文件导入数据 pd.read_excel(filename):从Excel文件导入数据 pd.read_sql(query, connection_object):从SQL表/库导入数据 pd.read_json( json_string):从JSON格式的字符串导入数据 pd.read_html(url):解析URL、字符串或者HTML文件,抽取其中的tables表格 pd.read_clipboard():从你的粘贴板获取内容,并传给read_table() pd.DataFrame(dict):从字典对象导入数据,Key是列名,Value是数据
CDA数据分析师
Numpy常用函数&方法
Numpy随机数函数
rand(d0, d1, …,dn) : 各元素是[0, 1)的浮点数,服从均匀分布 randn(d0, d1, …,dn):标准正态分布 randint(low, high,( shape)):依shape创建随机整数或整数数组,范围是[ low, high)
数组的类型变换
数据类型的转换 :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[起始编号:终止编号(不含): 步长]
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数据分析师
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):批量重命名索引
CDA数据分析师
Numpy常用函数&方法
Numpy的统计函数
np.sum(a, axis = None) : 依给定轴axis计算数组a相关元素之和 np.mean(a, axis = None) : 同理,计算平均值 np.std(a, axis = None) :同理,计算标准差 np.var(a, axis = None): 计算方差 np.min(a) np.max(a) : 计算数组a的最小值和最大值 np.argmin(a) np.argmax(a) :计算数组a的最小、最大值的下标(注:是一维的下标) np.median(a) : 计算数组a中元素的中位数(中值)
CDA数据分析师
Pandas常用函数&方法
数据选取
df[col]:根据列名,并以Series的形式返回列 df[[col1, col2]]:以DataFrame形式返回多列 s.iloc[0]:按位置选取数据 s.loc['index_one']:按索引选取数据 df.iloc[0,:]:返回第一行 df.iloc[0,0]:返回第一列的第一个元素
理顺杂乱的原 始数据,并修 正数据中的错 误,这一步比 较繁杂,但确 是整个分析的 基石
进行探索式分 析,对整个数 据集有个全面 的认识,以便 后续选择何种 分析策略
常常用到 机器学习、 深度学习 等算法
使用报告、 图表等形式 展现出来, 与他人交流
CDA数据分析师
Numpy概述
• NumPy 是 Numerical Python 的简称,是高性能计算和数据分析的基础包。 • Numeric,即 NumPy 的前身,是由 Jim Hugunin 开发的。Jim也开发了另一个包
Numarray,它拥有一些额外的功能。2005 年,Travis Oliphant 通过将 Numarray 的功能集 成到 Numeric 包中来创建 NumPy 包。
CDA数据分析师
Numpy安装
方法一: 标准的 Python 发行版不会与 NumPy 模块捆绑在一起。一个轻量级的替代方法是使用
CDA数据分析师
Pandas概述
Pandas 是 Python 进行数据分析的基础包,基于 NumPy 构建,该工具是为了解决 数据分析任务而创建的。
Pandas 纳入了大量库和一些标准的数据模型,提供了高效地操作大型数据集所需的 函数和方法,能使我们快速便捷地处理数据。这也是使 Python 成为强大而高效的数据 分析环境的重要因素之一。
Time- Series:以时间为索引的Series。 DataFrame:二维的表格型数据结构。很多功能与R中的data.frame类似。可以将 DataFrame理解为Series的容器。以下的内容主要以DataFrame为主。 Panel :三维的数组,可以理解为DataFrame的容器。
CDA数据分析师
多维数组索引 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常用函数&方法
我们使用如下缩写: 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) : 同理
CDA数据分析师
Pandas中的数Βιβλιοθήκη Baidu结构
Series:一维数组,与Numpy中的一维array类似。二者与Python基本的数据结构 List也很相近,其区别是:List中的元素可以是不同的数据类型,而Array和Series中则只 允许存储相同的数据类型,这样可以更有效的使用内存,提高运算效率。
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格式导出数据到文本文件
NumPy 相比于 Python 内建的库和数据类型有以下特性: • 强大、灵活的多维数组对象及丰富的操作 • C 实现,执行效率高 • 线性代数、傅里叶变换、丰富的随机数功能 • 复杂的(广播)功能 Numpy官网:http://www.numpy.org/
CDA数据分析师
Numpy应用
◦ 用于数据整理和清理、子集构造和过滤、转换等快速的矢量化数组运算。 ◦ 常用的数组算法,如排序、唯一化、集合运算等。 ◦ 高效的描述统计和数据合并/运算。 ◦ 用于数据集的合并/连接运算,数据对齐和关系型数据运算。 ◦ 将条件逻辑表述为数组表达式(而不是带有if-elifelse分支的循环) ◦ 数据的分组运算(聚合、转换、函数应用等)
Life is short, you need python
数据清洗 Numpy & Pandas
讲师:张淑娟 2019.3.14
数据分析流程
> 数据分析流程:
确定数据分析的目的
获取数据
清洗数据
探索数据
建模分析
结果交流
明确的分析 目的就像是 瞄准了正确 的靶心,才 能使后续的 动作有意义
收集原始数据, 数据来源可能 是丰富多样的, 格式也可能不 尽相同
np.linspace(1,10,4): 根据起止数据等间距地生成数组 np.linspace(1,10,4, endpoint = False):endpoint 表示10是否作为生成的元素
CDA数据分析师
Numpy常用函数&方法
常用属性
a.ndim :维度 a.shape :各维度的尺度 a.size :元素的个数 a.dtype :元素的类型 a.itemsize :每个元素的大小,以字节为单位