Pandas:如何按值过滤系列


您可以使用以下方法来过滤pandas系列中的值:

方法一:基于单一条件过滤值

 #filter for values equal to 7
my_series. loc [ lambda x:x == 7]

方法2:使用“OR”条件过滤值

 #filter for values less than 10 or greater than 20
my_series. loc [ lambda x: (x < 10) | (x > 20)]

方法3:使用“AND”条件过滤值

 #filter for values greater than 10 and less than 20
my_series. loc [ lambda x: (x > 10) & (x < 20)] 

方法4:过滤列表中包含的值

 #filter for values that are equal to 4, 7, or 23
my_series[my_series. isin ([4, 7, 23])]

本教程通过以下 pandas 系列解释了如何在实践中使用每种方法:

 import pandas as pd

#create pandas Series
data = pd. Series ([4, 7, 7, 12, 19, 23, 25, 30])

#view pandas Series
print (data)

0 4
1 7
2 7
3 12
4 19
5 23
6 25
7 30
dtype: int64

示例1:根据条件过滤值

以下代码展示了如何过滤 pandas 系列中等于 7 的值:

 #filter for values equal to 7
data. loc [ lambda x:x == 7]

1 7
2 7
dtype: int64

我们还可以过滤不等于7的值:

 #filter for values not equal to 7
data. loc [ lambda x:x != 7]

0 4
3 12
4 19
5 23
6 25
7 30
dtype: int644

示例2:使用“OR”条件过滤值

下面的代码展示了如何过滤 pandas 系列中小于 10大于 20 的值:

 #filter for values less than 10 or greater than 20
data. loc [ lambda x: (x < 10) | (x > 20)]

0 4
1 7
2 7
5 23
6 25
7 30
dtype: int64

示例3:使用“AND”条件过滤值

下面的代码展示了如何过滤pandas系列中大于10小于20的值:

 #filter for values greater than 10 and less than 20
data. loc [ lambda x: (x > 10) & (x < 20)]

3 12
4 19
dtype: int64

示例4:过滤列表中包含的值

以下代码显示了如何过滤 pandas 系列中列表中包含的值:

 #filter for values that are equal to 4, 7, or 23
data[data. isin ([4, 7, 23])]

0 4
1 7
2 7
5 23
dtype: int64

其他资源

以下教程解释了如何在Python中执行其他常见的过滤操作:

如何过滤包含特定字符串的 Pandas DataFrame 行
如何根据多个条件过滤 Pandas DataFrame
如何在 Pandas DataFrame 中使用“NOT IN”过滤器

添加评论

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