首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >在Pandas DataFrame中,我应该如何选择在两个条件下删除哪些行?

在Pandas DataFrame中,我应该如何选择在两个条件下删除哪些行?
EN

Stack Overflow用户
提问于 2021-03-06 02:43:38
回答 3查看 67关注 0票数 1

对于这样的DataFrame,我需要删除一些行:

import pandas as pd

import numpy as np

input_ = pd.DataFrame()

input_ ['ID'] = [1, 2, 3, 4, 1, 2, 3, 4, 1, 2, 3, 4]

input_ ['ST'] = [1, 1, 1, 1, 2, 2, 2, 2, 3, 3, 3, 3]

input_ ['V'] = [NaN, NaN, 1, 1, NaN, 1, Nan, 1, NaN, NaN, NaN, NaN]\

最后是一个像这样的DataFrame:

output_ ['ID'] = [ 2, 3, 4, 2, 3, 4, 2, 3, 4]

output_ ['ST'] = [ 1, 1, 1, 2, 2, 2, 3, 3, 3]

output_ ['V'] = [NaN, 1, 1, 1, Nan, 1, NaN, NaN, NaN]

其中,我删除了ID == 1的行,因为这几行在ST列中为所有值设置了V列== float(NaN) np.isnan(V)。如何选择使用这两个条件在Pandas DataFrame中擦除哪些行?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2021-03-06 02:55:29

使用groupby().transform('any')检查组是否包含某些notna

代码语言:javascript
运行
复制
valids = input_.V.notna().groupby(input_.ID).transform('any')

output = input_[valids]

输出:

代码语言:javascript
运行
复制
    ID  ST    V
1    2   1  NaN
2    3   1  1.0
3    4   1  1.0
5    2   2  1.0
6    3   2  NaN
7    4   2  1.0
9    2   3  NaN
10   3   3  NaN
11   4   3  NaN
票数 0
EN

Stack Overflow用户

发布于 2021-03-06 03:00:00

试试这个:

代码语言:javascript
运行
复制
input_ = input_[(input_['ID']!=1) & input_['V'].notnull()]

我不确定我是否完全理解您的问题,以及您是否希望过滤1,或者您这样做只是为了去掉NaN值。如果您不想通过ID==1进行实际筛选,只需:

代码语言:javascript
运行
复制
input_ = input_[input_['V'].notnull()]

这两方面的产出:

代码语言:javascript
运行
复制
   ID  ST    V
2   3   1  1.0
3   4   1  1.0
5   2   2  1.0
7   4   2  1.0
票数 0
EN

Stack Overflow用户

发布于 2021-03-06 06:07:10

代码语言:javascript
运行
复制
input_ = pd.DataFrame()

input_ ['ID'] = [1,     2, 3, 4,   1, 2,   3, 4,   1,   2,   3,   4]

input_ ['ST'] = [1,     1, 1, 1,   2, 2,   2, 2,   3,   3,   3,   3]

input_ ['V']  = ['NaN', 'NaN', 1, 1, 'NaN', 1,'Nan', 1, 'NaN', 'NaN', 'NaN', 'NaN']

input_1 = pd.DataFrame(input_)

print(input_1)

input_1.drop(0, inplace = True)
input_1.drop(4, inplace = True)
input_1.drop(8, inplace = True)

print(input_1)
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/66501877

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档