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 值的行