📜  比较 pandas 中的多个列 - Python (1)

📅  最后修改于: 2023-12-03 14:55:56.655000             🧑  作者: Mango

比较 pandas 中的多个列 - Python

在 Pandas 中,我们可以方便地进行多列的比较,找出符合某个条件的数据。比较操作通常返回一个布尔型的 DataFrame。

比较符号

Pandas 中支持的比较符号有:

  • > 大于
  • < 小于
  • >= 大于等于
  • <= 小于等于
  • == 等于
  • != 不等于
比较单个列

我们首先来看一下如何比较单个列。比如我们有以下的 DataFrame:

import pandas as pd

data = {'name': ['Alice', 'Bob', 'Charlie', 'David'],
        'age': [25, 30, 35, 40]}
df = pd.DataFrame(data)

输出:

       name  age
0     Alice   25
1       Bob   30
2   Charlie   35
3     David   40

如果我们想找出年龄大于等于 30 的人,可以这样做:

df['age'] >= 30

输出:

0    False
1     True
2     True
3     True
Name: age, dtype: bool

需要注意的是,这里返回的是一个 Series,而不是 DataFrame。要想得到一个 DataFrame,可以使用 loc:

df.loc[df['age'] >= 30]

输出:

      name  age
1      Bob   30
2  Charlie   35
3    David   40
比较多个列

如果我们想要比较多个列,只需要在条件中加上多个列的比较即可。比如,我们有以下的 DataFrame:

data = {'name': ['Alice', 'Bob', 'Charlie', 'David'],
        'age': [25, 30, 35, 40],
        'gender': ['F', 'M', 'M', 'M']}
df = pd.DataFrame(data)

输出:

      name  age gender
0    Alice   25      F
1      Bob   30      M
2  Charlie   35      M
3    David   40      M

如果我们想要找出年龄大于等于 30,性别为男的人,可以这样做:

df.loc[(df['age'] >= 30) & (df['gender'] == 'M')]

输出:

      name  age gender
1      Bob   30      M
2  Charlie   35      M
3    David   40      M

需要注意的是,在多个条件之间可以用 &(and)、|(or)和 ~(not)进行组合,条件之间需要用括号括起来。

结论

在 Pandas 中,我们可以方便地进行多列的比较操作,找出符合某个条件的数据。使用简单的比较符号,结合逻辑运算符,可以尽情发挥自己的想象力,进行各种各样的比较操作。