Python中的andas进行组合筛选和范围筛选

参考链接:

https://blog.csdn.net/orangefly0214/article/details/82712117

https://www.cnblogs.com/beyondChan/p/10861045.html

对pandas中的DataFrame进行条件筛选,即筛选出符合条件的数据条;这里经常会遇到以下几种情况,下面举例说明:

df = pd.DataFrame({'A':[100, 200, 300, 400, 500],'B':['a', 'b', 'c', 'd', 'e'],'C':[1, 2, 3, 4, 5]})
df
        A    B    C
 0    100    a    1
 1    200    b    2
 2    300    c    3
 3    400    d    4
 4    500    e    5    

(1)找出df中A列值为100的所有数据

df[df.A==100]
df[df['A'] == 100]
     A    B    C
 0    100    a    1

这里也可以是小于(<)、大于(>)、小于等于(<=)、大于等于(>=)、不等于(!=)等情况。

(2)找出df中A列值为100、200、300的所有数据

num = [100, 200, 300]
#df[df['A'].isin(num)]
df[df.A.isin(num)]     #筛选出A列值在num列表的数据条
        A    B    C
 0    100    a    1
 1    200    b    2
 2    300    c    3    

要用.isin 而不能用in,用 in以后选出来的值都是True 和False,然后报错:

ValueError: The truth value of a Series is ambiguous. Use a.empty, a.bool(), a.item(), a.any()

(3)找出df中A列值为100且B列值为‘a’的所有数据

df[(df.A==100)&(df.B=='a')]
        A    B    C
 0    100    a    1

(4)找出df中A列值为100或B列值为‘b’的所有数据

df[(df.A==100)|(df.B=='b')]
        A    B    C
 0    100    a    1
 1    200    b    2   

这里需要注意的是,多条件筛选的时候,必须加括号’()'。

判断值是否在某一个范围内进行筛选的时候需要使用DataFrame.isin()的isin()函数,而不能使用in。


Python中的andas进行组合筛选和范围筛选
https://blog.fulequn.online/2020/09/Article202009262/
作者
Fulequn
发布于
2020年9月26日
许可协议