Pandas:如何选择两个值之间的行


您可以使用以下基本语法来选择 pandas DataFrame 中的行,其中列位于两个特定值之间:

 df_filtered = df[df[' points ']. between ( 25 , 35 )]

此特定示例选择点列中的值在 25 到 35之间的所有行。

如果您想要选择点列中的值不在 25 到 35 之间的行,则可以在列名称前添加波形符 ( ~ ):

 df_filtered = df[ ~ df[' points ']. between ( 25 , 35 )]

以下示例展示了如何在实践中使用每种方法。

示例:在 Pandas 中选择两个值之间的行

假设我们有以下 pandas DataFrame,其中包含有关来自不同球队的篮球运动员得分的信息:

 import pandas as pd

#createDataFrame
df = pd. DataFrame ({' team ': ['Mavs', 'Mavs', 'Nets', 'Nets', 'Heat', 'Heat', 'Kings'],
                   ' points ': [22, 28, 35, 34, 29, 28, 23]})

#view DataFrame
print (df)

    team points
0 Mavs 22
1 Mavs 28
2 Nets 35
3 Nets 34
4 Heat 29
5 Heat 28
6 Kings 23

我们可以使用以下语法从 DataFrame 中仅选择列中的值在 25 到 35之间的行:

 #select rows where value in points column is between 25 and 35
df_filtered = df[df[' points ']. between ( 25 , 35 )]

#view filtered DataFrame
print (df_filtered)

   team points
1 Mavs 28
2 Nets 35
3 Nets 34
4 Heat 29
5 Heat 28

请注意,仅选择了点列中的值在 25 到 35 之间的行。

请注意, with()函数包含下限和上限内的值。

例如,得分为 35 的玩家包含在过滤后的 DataFrame 中。

如果您只想选择点列中的值不在 25 到 35 之间的行,我们可以在列名称前添加波浪号 ( ~ ):

 #select rows where value in points column is not between 25 and 35
df_filtered = df[ ~ df[' points ']. between ( 25 , 35 )]

#view filtered DataFrame
print (df_filtered)

    team points
0 Mavs 22
6 Kings 23

请注意,仅选择了点列中的值不在 25 到 35 之间的行。

注意:您可以在此处找到 pandas Between()函数的完整文档。

其他资源

以下教程解释了如何在 pandas 中执行其他常见任务:

Pandas:选择两列相等的行
Pandas:使用布尔系列从 DataFrame 中选择行
Pandas:选择具有 NaN 值的行

添加评论

您的电子邮箱地址不会被公开。 必填项已用*标注