pandas where
时间: 2023-07-07 20:31:14 浏览: 50
Pandas `where()`方法是用于根据条件从DataFrame或Series中选择元素进行替换或筛选的一种方法。它需要两个参数:第一个参数是条件,第二个参数是用于替换的值。如果条件为True,则使用原始值,否则使用替换值。
下面是一个示例:
```python
import pandas as pd
# 创建一个DataFrame
data = {'name': ['Alice', 'Bob', 'Charlie', 'David'],
'score': [80, 90, 70, 85]}
df = pd.DataFrame(data)
# 将分数小于80的替换为NaN
df['score'] = df['score'].where(df['score'] >= 80)
print(df)
```
输出结果为:
```
name score
0 Alice 80.0
1 Bob 90.0
2 Charlie NaN
3 David 85.0
```
在上面的示例中,我们使用`where()`方法将分数小于80的学生的分数替换为NaN。注意,原始DataFrame中的值没有被改变,而是创建了一个新的DataFrame。
相关问题
Pandas where函数用法
Pandas where函数用于根据条件筛选数据,并返回一个新的DataFrame或Series对象。该函数的基本语法如下所示:
```python
df.where(cond, other=nan, inplace=False, axis=None, level=None, errors='raise')
```
其中,参数说明如下:
- cond:筛选条件,可以是一个布尔值、一个表达式或一个函数。
- other:用于替换不满足条件的值,可以是一个标量、一个DataFrame或一个Series。
- inplace:是否在原DataFrame上修改数据。
- axis:指定筛选的轴,可以是0(默认,行)或1(列)。
- level:如果DataFrame有多个层级索引,则可以指定筛选的层级。
- errors:指定错误处理方式,可以是'raise'、'ignore'或'coerce'。
示例代码如下:
```python
import pandas as pd
# 创建DataFrame
df = pd.DataFrame({'A': [1, 2, 3, 4], 'B': [5, 6, 7, 8]})
# 使用where函数根据条件筛选数据
df.where(df > 2, 0)
```
输出结果为:
```
A B
0 0 5
1 0 6
2 3 7
3 4 8
```
以上代码中,where函数根据条件`df > 2`筛选数据,并将不满足条件的值替换为0。
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。