pandas 按照两个条件判断新增一列
时间: 2023-07-12 21:18:28 浏览: 16
你可以使用 `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,df.concat 新增一列,放到最开始
可以使用 `insert()` 方法将新列插入 DataFrame 的任意位置,例如:
```python
import pandas as pd
# 构造示例数据
df1 = pd.DataFrame({'A': [1, 2, 3], 'B': [4, 5, 6]})
df2 = pd.DataFrame({'C': [7, 8, 9], 'D': [10, 11, 12]})
# 合并两个 DataFrame
df = pd.concat([df1, df2], axis=1)
# 新增一列放到最开始
df.insert(0, 'new_col', [13, 14, 15])
print(df)
```
输出结果为:
```
new_col A B C D
0 13 1 4 7 10
1 14 2 5 8 11
2 15 3 6 9 12
```
相关推荐













