Pandas:如果特定列满足特定条件,则选择行

Posted

技术标签:

【中文标题】Pandas:如果特定列满足特定条件,则选择行【英文标题】:Pandas: select rows if a specific column satisfies a certain condition 【发布时间】:2017-04-30 01:34:52 【问题描述】:

假设我有这个数据框df:

    A   B   C
0   1   1   2
1   2   2   2
2   1   3   1
3   4   5   2

假设您要选择列C>1 的所有行。如果我这样做:

newdf=df['C']>1

我只在结果df中获得TrueFalse。相反,在给出的示例中,我想要这个结果:

    A   B   C
0   1   1   2
1   2   2   2
3   4   5   2

你会怎么做?你建议使用iloc吗?

【问题讨论】:

【参考方案1】:

使用boolean indexing:

newdf=df[df['C']>1]

【讨论】:

这个和 piRSquared 的答案完美地工作。我更喜欢这个,因为更容易记住【参考方案2】:

使用query

df.query('C > 1')

【讨论】:

以上是关于Pandas:如果特定列满足特定条件,则选择行的主要内容,如果未能解决你的问题,请参考以下文章

通过选择 Pandas 中的其他列来更新条件列值

如果满足多个特定条件,则在 pandas 中删除行

Pandas:如何根据特定列上特定值的条件选择数据框中的行[重复]

如何使用多个布尔条件选择 Pandas DataFrame 中的特定列

如果有 id 重复,则选择所有行,然后选择具有特定类型的(2 个)

从具有特定列和条件的数据框中选择行(不使用列名)