pandas filter用法详解
时间: 2023-05-27 12:01:26 浏览: 153
pandas的使用方法
pandas中提供了多种方法来筛选数据,其中比较常用的是`boolean indexing`和`query`两种方式。
## Boolean indexing
`Boolean indexing`是指使用逻辑条件来筛选数据的方式。在pandas中,我们可以使用`[]`来实现这一操作,使用`[]`内的逻辑表达式可以筛选出符合条件的行。例如:
```python
import pandas as pd
df = pd.DataFrame({'A': [1, 2, 3],
'B': [4, 5, 6],
'C': [7, 8, 9]})
# 使用逻辑表达式筛选数据
df_filtered = df[df['A'] > 1]
print(df_filtered)
```
输出结果:
```
A B C
1 2 5 8
2 3 6 9
```
上面代码中,`df_filtered = df[df['A'] > 1]`表示筛选出`'A'`列中大于1的行。
## Query
`query`方法是使用类似SQL的方式来筛选数据。在pandas中,我们可以使用`query`方法来实现这一操作。使用`query`方法可以避免写很长的逻辑表达式,增加代码可读性。例如:
```python
import pandas as pd
df = pd.DataFrame({'A': [1, 2, 3],
'B': [4, 5, 6],
'C': [7, 8, 9]})
# 使用query方法筛选数据
df_filtered = df.query('A > 1')
print(df_filtered)
```
输出结果:
```
A B C
1 2 5 8
2 3 6 9
```
上面代码中,`df_filtered = df.query('A > 1')`表示筛选出`'A'`列中大于1的行。
另外,`query`方法还支持使用外部变量的方式来传递条件。例如:
```python
import pandas as pd
df = pd.DataFrame({'A': [1, 2, 3],
'B': [4, 5, 6],
'C': [7, 8, 9]})
# 使用外部变量传递条件
cond = 1
df_filtered = df.query(f'A > {cond}')
print(df_filtered)
```
输出结果:
```
A B C
1 2 5 8
2 3 6 9
```
上面代码中,我们使用了`f-string`将变量`cond`插入到了查询条件中。
总的来说,`Boolean indexing`方式比较灵活,可以灵活处理各种复杂的逻辑条件,而`query`方式则更加简单易懂。在实际应用中,我们可以根据具体情况选用不同的方式进行数据筛选。
阅读全文