python数据分析——数据清理(二)
2021/7/12 17:06:50
本文主要是介绍python数据分析——数据清理(二),对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
上一章给大家介绍了如何查看数据与选取你所需要的数据,这篇给大家介绍一下选择完数据如何对数据进行处理。
往往我们拿到的数据经过查看过都会存在一些不能满足需求的问题,这时就可能需要对原数据进行一些修改与整理。比如:Python字段名修改、列名选择修改、索引重置、异常值替换、数据类型转化、数据组合等。还是主要给大家介绍一下一些常用涉及到的方法,本章结构请见目录:
文章目录
-
* 一、清理数据
-
* * 列名修改
- 索引修改
- 内容修改
- 数据类型转换
- 时间转换
- 二、代码案例
-
* * 列名/索引修改案例
-
一、清理数据
列名修改
属性 | 描述 |
---|---|
df.columns = [‘a’,‘b’,‘c’] | 重命名列名,全部一起改 |
df.rename(columns={‘a’: ‘A’, ‘b’: ‘B’, ‘c’: ‘C’}, inplace=True) |
修改部分列名,inplace=True并直接覆盖
df.set_index(‘col1’) | 更改索引列,把指定列变成索引
索引修改
属性 | 描述 |
---|---|
df.set_index(‘column_one’) | 更改索引列,列变索引 |
df.reset_index() | 将索引变成列或属性drop=true重置索引 |
内容修改
属性 | 描述 |
---|---|
pd.cut(s,list) | 将数据列进行分段,pd.cut(data,[0,10,20,30]) |
pd.isnull() | 检查DataFrame对象中的空值,并返回一个Boolean数组 |
pd.notnull() | 检查DataFrame对象中的非空值,并返回一个Boolean数组 |
df.drop(‘a’,axis=1) | 删除a列所有数据 |
df.dropna() | 删除所有包含空值的行NaN |
df.dropna(axis=1) | 删除所有包含空值的列NaN |
df.dropna(axis=1,thresh=n) | 删除所有小于n个非空值的行NAN |
df.fillna(x) | 用x替换DataFrame对象中所有的空值NAN |
df/s.replace(1,‘one’) | 用‘one’代替所有等于1的值,同样适用于df与s |
df/s.replace([1,3],[‘one’,‘three’]) | 用’one’代替1,用’three’代替3 |
数据类型转换
主要的数据类型有int(整数型)、float(浮点型)、str(字符串型)
属性 | 描述 |
---|---|
s.astype(‘float’) | 将Series中的数据类型更改为float类型,astype又称硬转化 |
df.astype(‘str’) | 将df整表转化成str类型 |
df[[‘col1’,‘col2’]].astype(‘int’) | 将df中col1,col2两列数据转化成int格式 |
pd.to_numeric(s) | 将series自动转化成数字类型格式 |
df.infer_objects() | 自动识别数据类型 |
时间转换
属性 | 描述 |
---|---|
s.dt.total_seconds() | datatime计算结果返回秒 |
二、代码案例
本文数据连接点击下载
列名/索引修改案例
手上有一份泰坦尼克号船票信息,先摸清数据的特征
![这里写图片描述](https://img-
blog.csdn.net/20180811221456471?)
import pandas as pd #导入pd库 data=pd.read_csv(r'/Users/huangjunwen/Desktop/test.csv')#导入本地csv数据文件 print(data.info())#先查一下数据各列的数据类型等
数据有11列418行,数据类型包含了object/int/float三种类型,列名都是英文||-.-看着难受,有的列数据只有91行,存在空值。
![这里写图片描述](https://img-
blog.csdn.net/20180811220615346?)
data.columns=['乘客','类型','姓名','性别','年龄','关系','Parch','船票','票价','船舱','登船口']#把所有列名换成中文名字,有一个parch不知道是什么意思理解不了 print(data['性别'].value_counts())#看一下男女人数情况 print(data['年龄'].describe())#看一下年龄统计数据情况
性别记录是完整的,也没有出现人妖的情况。。。。年龄有效记录了332人,年龄最小的不到1岁,最大的76岁,平均年龄在30岁,50%分为数为27岁。
![这里写图片描述](https://img-
blog.csdn.net/20180811223735363?)
data['年龄'].fillna(27,inplace=True) #将年龄为空的全部替换成27岁,保证数据完整性方面后续的分析。inplace=True是直接将原数据直接替换,如果不指定默认是False原表数据不替换
年龄非空数从332变成了418,补全了空值
![这里写图片描述](https://img-
blog.csdn.net/20180811231157526?)数据类型转化案例
data['Parch']=data['Parch'].astype('str')#将parch列数据类型改成字符串格式
这篇关于python数据分析——数据清理(二)的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-11-14Python编程入门指南
- 2024-11-13Python基础教程
- 2024-11-12Python编程基础指南
- 2024-11-12Python基础编程教程
- 2024-11-08Python编程基础与实践示例
- 2024-11-07Python编程基础指南
- 2024-11-06Python编程基础入门指南
- 2024-11-06怎么使用python 计算两个GPS的距离功能-icode9专业技术文章分享
- 2024-11-06Python 基础编程入门教程
- 2024-11-05Python编程基础:变量与类型