使用pandas where 函数判断一列满足条件时另一列输出
时间: 2023-09-04 17:05:24 浏览: 87
### 回答1:
可以使用pandas的DataFrame.loc[]函数来实现这个功能。
示例代码:
```
import pandas as pd
# 创建数据框
df = pd.DataFrame({'A': [1, 2, 3, 4], 'B': [5, 6, 7, 8]})
# 查询A列中值大于2的行,并输出B列
print(df.loc[df['A'] > 2, 'B'])
```
这段代码会输出:
```
2 7
3 8
Name: B, dtype: int64
```
说明在A列中值大于2的行的B列的值。
### 回答2:
pandas中的where函数是用于按照条件筛选数据的函数。在使用 where 函数时,可以通过传入一个条件表达式来判断指定列是否满足条件,如果满足条件则输出另一列的对应值,如果不满足条件则输出 NaN。
例如,假设有一个包含学生姓名和成绩的数据集,我们想要筛选出成绩大于等于90分的学生姓名。可以使用 where 函数来实现这个功能,具体步骤如下:
1. 导入 pandas 模块并读取数据集。
```python
import pandas as pd
data = pd.read_csv('students.csv')
```
2. 使用 where 函数筛选出成绩大于等于90分的学生姓名,将条件表达式传入 where 函数,并将满足条件的学生姓名输出到新的列中。
```python
data['姓名满足条件'] = data['成绩'].where(data['成绩'] >= 90, other=np.nan)
```
这样,我们就可以得到一个新的列,其中只有满足条件的学生姓名,不满足条件的行则输出 NaN。
需要注意的是,在使用 where 函数时,我们需要在导入 pandas 时也导入 numpy 模块,因为 where 函数将使用 numpy 中的特定常量(例如 np.nan)作为条件的替代值。
以上就是使用 pandas where 函数判断一列满足条件时另一列输出的方法,通过传入条件表达式,我们可以根据条件筛选出满足条件的数据,并输出指定列的对应值。
### 回答3:
pandas中的where函数可以用来判断一列是否满足条件,并在满足条件时输出另一列的值。使用where函数可以通过一行代码来实现该功能。
具体语法如下:
```python
df['新列名'] = df['判断条件所在列'].where(df['判断条件'], df['输出列'])
```
其中,df是要操作的数据框,'新列名'是通过where函数生成的新的列名,'判断条件所在列'是要判断的列名,'判断条件'是判断条件,可以是任意逻辑判断,'输出列'是在判断条件为False时输出的列名。
例如,我们有一个数据框df,包含了销售订单和对应的销售额:
```
订单编号 销售金额
0 001 1000
1 002 2000
2 003 1500
3 004 1200
```
现在我们想判断销售金额是否大于等于1500,如果是,则输出"高销售额",否则输出"低销售额",可以使用where函数来实现:
```python
df['销售情况'] = df['销售金额'].where(df['销售金额'] >= 1500, "低销售额")
```
结果如下:
```
订单编号 销售金额 销售情况
0 001 1000 低销售额
1 002 2000 高销售额
2 003 1500 高销售额
3 004 1200 低销售额
```
通过where函数,我们成功判断了销售金额是否满足条件,并在满足条件时输出了对应的销售情况。