python读取xlsx文件 第二列是x第三列是y 查找x大于35 y大于38 和剩余部分这三部分 把这三部分的每行分别写入xlsx文件的三个sheet
时间: 2024-09-19 19:03:12 浏览: 37
在Python中,我们可以使用pandas库方便地处理Excel文件,包括读取和写入数据。为了实现你的需求,首先需要安装`openpyxl`和`pandas`这两个库,如果你还没有安装,可以使用以下命令:
```bash
pip install pandas openpyxl
```
然后,你可以按照以下步骤操作:
1. 读取Excel文件到一个DataFrame中:
```python
import pandas as pd
# 读取xlsx文件
df = pd.read_excel('input.xlsx', engine='openpyxl')
```
2. 筛选出满足条件的行:
```python
filtered_df = df[(df['x'] > 35) & (df['y'] > 38)]
```
3. 将过滤后的数据分别写入新的工作表:
```python
# 创建一个新的Excel writer对象,指定工作簿名称
writer = pd.ExcelWriter('output.xlsx', engine='openpyxl')
# 写入第一部分(满足x>35且y>38的行)
filtered_df.iloc[:, :-1].to_excel(writer, sheet_name='Sheet1', index=False)
# 由于第二部分没有提供具体的范围,这里假设你是想保留剩下的所有列,除了最后一列(如果有的话),所以直接写入原DataFrame
df[df['x'] <= 35 & df['y'] <= 38].iloc[:, :-1].to_excel(writer, sheet_name='Sheet2', index=False)
# 如果原始数据的最后一列对应的是'y'值,你需要选择不包含这一列的前两列
if 'y' in df.columns[:-1]:
df[df['x'] <= 35 & df['y'] <= 38][df.columns[:-1]].to_excel(writer, sheet_name='Sheet3', index=False)
# 关闭写入过程
writer.save()
```
以上代码会将满足条件的行写入名为"Sheet1"的工作表,剩余的行写入"Sheet2"(若存在的话),如果还有一张单独的Sheet3,它将包含所有未满足条件的行。
阅读全文