python 数据清洗用到两个包 numpy和pandas
Pandas的名称来自于Panel data和Python数据分析data analysis,是Python的一个数据分析包,最初由AQR Capital Management于2008年4月开发,被作为金融数据分析工具,为时间序列分析提供了很好的支持,并于2009年底开源出来。
NumPy是Numeric Python的缩写,是Python的一种开源的数值计算扩展,可用来存储和处理大型矩阵matrix,比Python自身的嵌套列表结构要高效的多,提供了许多高级的数值编程工具,如:矩阵数据类型、矢量处理,以及精密的运算库,专为进行严格的数字处理而产生。
目录
一、了解数据
二、清洗数据
去除不需要的行、列
重新命名列
重新设置索引
用字符串操作规范列
用函数规范列
删除重复数据
填充缺失值
读取数据:Date = pd.read_excel(r"数据储存位置",header=XX行) # 读取数据 (header=XX行指的是把第几行作为列名
date.head() 查看前几行默认是前5行
date.tail()
查看后n行数据,默认值是5
date.shape
查看数据维数
date.columns
查看所有列名
date.info()
查看索引、数据类型和内存信息
date.describe()
查看每列数据的基本统计值,包括计数值、均值、标准差、最小
最大值、1/4、1/2、3/4分位数。
.value_counts()
查看Series对象的唯一值和计数值
了解数据集之后,开始对数据集进行清洗,要处理的问题有包含无效信息,列名不规范、格式不一致,存在重复值,缺失值,异常值等
01
去除不需要的行、列
在分析一个数据集的时候,很多信息其实是用不到的,因此,需要去除不必要的行或列
导入数据,只选取前100行和特定几列
subset_columns = [‘Job #’, ‘Doc #’, ‘Borough’, ‘Initial Cost’, ‘Total Est. Fee’]
date = pd.read_csv(‘文件路径’, nrows=100, usecols=subset_columns)
date.head()
将header设置为1的效果
pd.read_csv(‘文件路径’, nrows=100, header=1)
数据导入之后,还想删除某些行和列,可以用 .drop() 方法。
先创建一个列表list,把不需要的列名放进去,再调用.drop() 方法,参数axis为1时代表列,为0时代表行,参数inplace=True表示不创建新的对象,直接对原始对象进行修改。这里我们删除前两列。
重新命名列
当原始数据的列名不好理解,或者不够简洁时,可以用.rename()方法进行修改。这里我们把英文的列名改成中文,先创建一个字典,把要修改的列名定义好,然后调用rename()方法。
重新设置索引
数据默认的索引是从0开始的有序整数,但如果想把某一列设置为新的索引,可以用.set_index()方法实现
4.用字符串操作规范列
字符串str操作是非常实用的,因为列中总是会包含不必要的字符,常用的方法如下:
lower()
upper()
capitalize()
replace()
strip()
split()
get()
contains()
find()
1.str.lower() 是把大写转换成小写,同理,str.upper()是把小写转换成大写,将示例中用大写字母表示的索引转换成小写
2.str.capitalize() 设置首字母大写
3.str.replace(’’, ‘’) 替换特定字符。这里把列中的美元符号去掉,替换成空字符。
4.str.strip() 去除字符串中的头尾空格、以及\n \t
5.str.split(‘x’) 使用字符串中的’x’字符作为分隔符,将字符串分隔成列表。这里将列中的值以’.'进行分割