pandas 按照两个条件判断新增一列
时间: 2023-07-12 17:18:28 浏览: 122
你可以使用 `loc` 方法和布尔索引来实现按照两个条件判断新增一列,例如:
```python
import pandas as pd
# 创建一个示例 DataFrame
df = pd.DataFrame({'A': [1, 2, 3, 4],
'B': [5, 6, 7, 8],
'C': [9, 10, 11, 12]})
# 按照两个条件判断新增一列
df.loc[(df['A'] > 2) & (df['B'] < 8), 'D'] = 'yes'
# 显示 DataFrame
print(df)
```
输出结果为:
```
A B C D
0 1 5 9 NaN
1 2 6 10 NaN
2 3 7 11 yes
3 4 8 12 NaN
```
在这个示例中,我们使用 `loc` 方法和布尔索引来选出符合条件的行,并在这些行上新增一列 `D`。其中,第一个条件是 `df['A'] > 2`,表示列 `A` 中的元素大于 2;第二个条件是 `df['B'] < 8`,表示列 `B` 中的元素小于 8。两个条件通过 `&` 运算符连接在一起,表示两个条件都要满足。在选出符合条件的行后,我们将这些行中的列 `D` 的值设置为 `'yes'`。
相关问题
pandas 按照两个条件判断新增一列,两个条件是或者的关系
你可以使用 pandas 的 apply 函数结合 lambda 表达式来实现按照两个条件判断新增一列,两个条件是或者的关系。具体实现步骤如下:
1. 定义一个 lambda 函数,该函数接受每一行数据作为输入,根据两个条件判断是否新增一列,并返回新增列的值。
2. 使用 apply 函数将该 lambda 函数应用到 DataFrame 的每一行数据上,得到新增列的值。
3. 将新增列的值赋值给 DataFrame 中新增的列即可。
示例代码如下:
```
import pandas as pd
# 创建示例 DataFrame
df = pd.DataFrame({
'A': [1, 2, 3, 4, 5],
'B': [6, 7, 8, 9, 10],
})
# 定义 lambda 函数
condition_1 = True
condition_2 = False
df['new_col'] = df.apply(lambda row: 'Yes' if (row['A'] == 1 or row['B'] == 7) else 'No', axis=1)
# 输出结果
print(df)
```
在上面的示例代码中,我们定义了两个条件:A 列等于 1 或者 B 列等于 7。然后使用 apply 函数将 lambda 函数应用到 DataFrame 的每一行数据上,得到新增列的值,并将新增列赋值给 DataFrame 中新增的列 new_col。最后输出 DataFrame 的结果。
pandas 按照两个条件判断新增一列,两个条件是或者的关系 使用 loc 方法
好的,根据您的要求,我可以告诉您如下的代码实现:
假设您要新增一列名为 `new_col`,并且要按照两个条件判断,这两个条件是或者的关系,可以使用 `loc` 方法实现,代码如下:
```python
import pandas as pd
# 创建示例数据
data = {'A': [1, 2, 3, 4, 5],
'B': [6, 7, 8, 9, 10],
'C': ['a', 'b', 'c', 'd', 'e']}
df = pd.DataFrame(data)
# 使用 loc 方法新增一列 new_col
df.loc[(df['A'] > 2) | (df['C'] == 'e'), 'new_col'] = True
# 展示结果
print(df)
```
解释如下:
- 使用 `loc` 方法定位到要新增的行和列,第一个参数是行索引,第二个参数是列索引;
- 行索引使用了两个条件判断,条件之间使用了 `|`,表示或者的关系;
- 列索引直接指定为 `new_col`,表示新增一列;
- 最后将新增的结果赋值为 `True`。
执行上述代码后,您应该会看到如下的输出:
```
A B C new_col
0 1 6 a NaN
1 2 7 b NaN
2 3 8 c True
3 4 9 d True
4 5 10 e True
```
其中,第 3、4、5 行中的 `new_col` 列都被赋值为了 `True`。
阅读全文