pandas根据多条件赋值
时间: 2024-09-24 18:13:31 浏览: 42
pandas.DataFrame 根据条件新建列并赋值的方法
在Pandas中,你可以使用`loc`、`query`或者`assign`等方法根据多个条件同时对DataFrame进行赋值或修改。这里有几个例子:
1. **基于索引和列名**:
```python
df.loc[(df['column1'] == value1) & (df['column2'] == value2), 'new_column'] = new_value
```
这里,`df['column1'] == value1` 和 `df['column2'] == value2` 是你的两个条件,`new_column` 是你想要添加的新列,`new_value` 是给满足条件的行设置的新值。
2. **使用布尔数组**:
```python
df['new_column'] = df.apply(lambda row: assign_condition(row), axis=1)
```
`apply()` 函数会遍历每一行,并根据`assign_condition(row)`函数的结果创建新的值。你需要提供一个函数,该函数接收一个行数据并返回布尔值,表示是否需要为该行设置新值。
3. **使用query()函数**:
```python
df = df.query('column1 == @value1 and column2 == @value2')
```
这种方式更像SQL查询,它会直接过滤出符合条件的数据行,返回的是一个新的DataFrame。
在每个例子中,记得先确保你的条件已经形成了有效的布尔系列,因为布尔系列会被用作索引来选择DataFrame中的行。
阅读全文