【转载】pandas如何去掉、过滤数据集中的某些值或者某些行?

摘要

文章转载至:

https://blog.csdn.net/qq_22238533/article/details/76127966

在进行数据分析与清理中,我们可能常常需要在数据集中去掉某些异常值。具体来说,看看下面的例子。


0.导入我们需要使用的包

import pandas as pd

pandas是很常用的数据分析,数据处理的包。anaconda已经有这个包了,纯净版python的可以自行pip安装。

 

1.去掉某些具体值

 

数据集df中,对于属性appPlatform(最后一列),我们想删除掉取值为2的那些样本。

如何做?非常简单。

import pandas as pd
df[(True^df['appPlatform'].isin([2]))]


当然,有时候我们需要去掉不止一个值,这个时候只需要在isin([])的列表中添加。更具体来说,例如,对于appID这个属性,我们想去掉appID=278和appID=382的样本。

df[(True^df['appID'].isin([278,382]))]

 

 

 

另外,我们有时候并不只是考虑某一列,还需要考虑另外若干列的情况。例如,我们需要过滤掉appPlatform=2而且appID=278和appID=382的样本呢?非常简单。

df[(True^df['appID'].isin([278,382]))&(True-df['appPlatform'].isin([2]))]

.其实,在这里我们看到,就是由两部分组成的,第一部分就是appID中等于278和382的,另外一部分就是appPlatform中等于2的。两者取逻辑关系 与(&)

 

 

2.过滤掉某个范围的值

上面我们是了解了如何取掉某个具体值,下面,我们要看看如何过滤掉某个范围的值。

对于数据集df,我们想过滤掉creativeID(第一列)中ID值大于10000的样本。

df[df['creativeID']<=10000]


 

另外,如果要考虑多列的话,其实和上面一样,将两种情况做逻辑与(&)就可以,不过值得注意的是,每个条件要用括号()括起来。
版权声明:本文为CSDN博主「kingsam_」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/qq_22238533/article/details/76127966

 

另外,如果代码写的是(True-df...)运行的时候会报错

UserWarning: evaluating in Python space because the '-' operator is not supported by numexpr for the bool dtype, use '^' instead f"evaluating in Python space because the {repr(op_str)} "

这个时候要吧“-”换成“^”’去进行数据的过滤(文中代码已经替换)。

如果要过滤的是数据中的“字符串”数据,只需要

df[(True^df['appID'].isin([‘字符串’])) 就可以了,是一样的意思

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值