pandas过滤满足条件的值
时间: 2023-06-29 12:20:23 浏览: 37
可以使用pandas中的boolean indexing来过滤满足条件的值。例如,假设有一个DataFrame df,我们想要过滤出列A中大于5的行,可以使用以下代码:
```
df[df['A'] > 5]
```
其中,`df['A'] > 5`会返回一个布尔类型的Series,值为True表示该行的A列大于5,False表示小于等于5,然后将这个Series传入df中,即可得到满足条件的行。
相关问题
pandas过滤满足条件的值案例
假设有一个存储学生成绩的DataFrame,包含学生姓名、科目和成绩三列数据,请问如何过滤出数学成绩大于80分的学生?
首先,我们可以创建一个示例DataFrame:
```
import pandas as pd
data = {'name': ['张三', '李四', '王五', '赵六'],
'subject': ['语文', '数学', '英语', '语文'],
'score': [78, 85, 79, 92]}
df = pd.DataFrame(data)
print(df)
```
输出结果为:
```
name subject score
0 张三 语文 78
1 李四 数学 85
2 王五 英语 79
3 赵六 语文 92
```
然后,我们可以使用boolean indexing来过滤满足条件的行,即数学成绩大于80分的学生:
```
math_df = df[df['subject'] == '数学']
math_df = math_df[math_df['score'] > 80]
print(math_df)
```
输出结果为:
```
name subject score
1 李四 数学 85
```
可以看到,我们成功地过滤出了数学成绩大于80分的学生,即李四。
pandas where条件过滤
在 pandas 中,我们可以使用 `where` 方法进行条件过滤。该方法的基本语法如下:
```python
df.where(condition, other=nan, inplace=False)
```
其中,`condition` 参数是一个布尔数组,表示满足条件的元素,`other` 参数是另一个 DataFrame 或标量,表示不满足条件的元素应替换成的值,默认为 NaN。`inplace` 参数表示是否替换原 DataFrame。
例如,假设有一个 DataFrame `df`:
```python
import pandas as pd
df = pd.DataFrame({'A': [1, 2, 3], 'B': [4, 5, 6]})
```
我们可以使用 `where` 方法将所有小于等于 2 的元素替换成 0:
```python
df.where(df <= 2, 0)
```
输出结果为:
```
A B
0 1 4
1 2 5
2 0 0
```
注意,原 DataFrame `df` 并没有改变,因为 `inplace` 参数默认为 False。如果将 `inplace` 参数设置为 True,则会直接修改原 DataFrame。