python 删掉某一列_Python数据分析第八节 数据预处理 Excel与python 操作对比

Excel是我们最常用的office软件之一,很多工作内容都是每天处理大量Excel表格,相同的操作如果用python来操作是怎样的呢,这两者之间有什么互补的呢?这一节我们将举几个例子来看一下~

  目录

  1. 缺失值查看

  2. 缺失值删除

  3. 缺失值填充

  4. 重复值处理

47912124f4a198df0f070b12cb3414b9.png

1. 缺失值查看

Excel操作

如果数据不是特别多,想看到具体是哪个单元格数据缺失,可以利用定位条件(Ctrl+G),会弹出对话框,我们选择定位条件为 ‘空值’ 进行定位:

25d9e6bd7729a5f7b80cb22f834ab694.png

按照这个操作,缺失值部分会被标注出来:

83c0b47d1889a69b3b1f423c2bd38ec8.png

如果Excel表格数据过多,我们只能通过选中每一列,查看右下角的计数,通过对比无缺失值的列和有缺失值的列来得到缺失了多少数据。

python操作

python中直接调用info()方法就会返回每一列的缺失情况。我们用上面的简单表格导入python进行操作看一下~

6d4287de84ef1819783ad943d69bc62d.png

这段语句生成的是该表格的所有基本信息,我们只需要对比entries的个数和“姓名”,“年龄”,“性别”,“身高”,“体重”后面的的数值即可,一样代表没有缺失值,上面的例子可以看出,性别和身高分别只有4个元素,说明性别和身高各缺失1个值。

如果数据量非常大,用python可以对缺失数据有一个快速的了解。

2. 缺失值删除

Excel操作

选中有缺失值的单元格,鼠标右键删除整行

或者选中有缺失值的单元格,快捷键command+减号(MacOS系统)

Excel只能一行一行的操作,如果数据很多,会非常耗时间

python操作

在python中,我们利用dropna()方法,dropna()方法默认删除含有缺失值的行,只要某一行含有缺失值就把这一行删除。

如果想删除空白行,只需要传入一个参数 how='all' 即可, 这样就只会删除那些全为空值的行,不全为空值的行不会被删除。

如果想删除至少有 n 个缺失值的行,我们可以传入参数thresh=n, 这样小于n 个缺失值的行就不会被删除了。

如果想删除某几列里面有缺失值的行,我们需要传入参数subset=['列名1' , '列名2' , ...]即可。这样如果被指定的列里面有缺失值,这些行就会被删除了。

小贴士:dropna()方法本身不会替换原表格,如果想用删除后的表格替换原表格,只需在括号里加上 inplace=True 即可,这个细节适用所有后面介绍的操作~

f2ce270645dc551ae0338edab313db12.png

可以看到,经过删除之后,所有列都只剩三个元素了,不再有缺失值了

3. 缺失值填充

Excel操作

先利用缺失值查找的方法:Ctrl+G 定位空值。定位之后,不要点按鼠标直接输入想要填充的数字,大多数情况下填充0,然后按Ctrl+Enter即可将全部缺失值换成想要填充的同一个数字。

如果每一列需要填充的数字不一样怎么办?

很简单我们只需要在操作之前先选中某一列,然后执行上面的操作,将一列的缺失值全部填充为同一数字,然后再选中另一列,填充另一个内容即可。

python操作

在python中,我们利用fillna()方法对数据表中缺失数据进行填充,在fillna后面括号中输入要填充的内容即可。

# 将缺失值全部填充0df.fillna(0)# 将身高一列缺失值填充170df['身高'].fillna(170)# 将身高一列缺失值填充身高的平均值df['身高'].fillna(df['身高'].mean())

是不是感觉python处理起来更加的灵活呢,想怎么填就怎么填,而且只需要一个语句就可以修改整个Excel表格了~

4. 重复值处理

Excel操作

在Excel中,我们先选中要删除重复值的表格部分,然后依次单击菜单栏中的 数据>数据工具>删除重复值

0ac02be279ac5a7de682f47d336a4778.png

会出现如下对话框:

d8ad35fee4cd533c38bd8a955627bba6.png

全选代表重复行完全一摸一样,如果你只想跟据某几列是否重复来删除,选中要根据的那几列就好。删除是Excel会默认保留在前面的行,后面的重复行将会被删除。

python操作

在python中,我们利用drop_duplicates()方法,该方法默认对所有值进行重复值判断,且默认保留前面的行。

当然,也可以像Excel一样,只对某几列的值进行重复判断,我们只需要在drop_duplicates 后面的括号里输入 subset='列名' 即可,多个列名这样输入:subset=['列名1' , '列名2' , ...] 即可。

还有,如果你想保留在后面的行,删除在前面的重复行,只需再传入 keep='last' 即可;如果想把有重复的重复行都删除,一个都不保留,传入keep=False 即可。

# 删除完全重复行df.drop_duplicates()# 删除姓名,年龄两列都相同的重复行,且保留最后一行df.drop_duplicates(subset=['姓名' , '年龄'], keep='last')# 删除姓名,年龄两列都相同的重复行,全部删除,不保留df.drop_duplicates(subset=['姓名' , '年龄'], keep=False)

💻

长按关注公众号

欢迎留言交流

1c96a8eccbb508eeec7cf3adf9afd83d.png

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值