使用pandas根据多个条件查询并更新excel数据
时间: 2023-08-06 09:04:18 浏览: 98
利用pandas合并多个excel的方法示例
5星 · 资源好评率100%
可以使用pandas库中的`loc`方法来根据多个条件查询并更新excel数据。
假设需要查询并更新的excel文件名为`data.xlsx`,包含的数据如下:
| Name | Age | Gender | Score |
|------|-----|--------|-------|
| Alice | 20 | F | 90 |
| Bob | 22 | M | 85 |
| Charlie | 21 | M | 88 |
| David | 23 | M | 92 |
| Emma | 20 | F | 95 |
首先,需要使用`pandas`库中的`read_excel`方法读取excel文件中的数据:
```python
import pandas as pd
df = pd.read_excel('data.xlsx')
```
查询并更新数据的步骤如下:
1. 使用`loc`方法查询符合条件的数据行:
```python
condition = (df['Age'] > 20) & (df['Gender'] == 'M')
selected_rows = df.loc[condition]
```
上述代码中,使用`&`运算符连接两个条件,表示年龄大于20且性别为男性的数据行。
2. 对查询结果进行更新:
```python
selected_rows['Score'] += 5
```
上述代码中,将查询结果中的`Score`列的值加上5。
3. 将更新后的数据保存回excel文件中:
```python
writer = pd.ExcelWriter('data.xlsx')
df.to_excel(writer, index=False)
writer.save()
```
上述代码中,使用`pd.ExcelWriter`方法创建一个`ExcelWriter`对象,将数据保存到该对象中,最后使用`save`方法将数据写入excel文件中。
完整的代码如下:
```python
import pandas as pd
df = pd.read_excel('data.xlsx')
condition = (df['Age'] > 20) & (df['Gender'] == 'M')
selected_rows = df.loc[condition]
selected_rows['Score'] += 5
writer = pd.ExcelWriter('data.xlsx')
df.to_excel(writer, index=False)
writer.save()
```
阅读全文