writer读取佛山的excel表格每个的sheet的列名,如果列名称不是‘区’或者‘省’或者‘街道’, id ,‘日期’,‘数量’, ‘国家’ ,则以最后一行第一列之后每一个的数值是否低于90为判断,若低于则删除这列数据,最后将处理好的数据保存到原表格
时间: 2024-05-11 22:14:16 浏览: 16
中。
代码如下:
```
import pandas as pd
# 读取Excel表格
file_path = '佛山.xlsx'
excel_file = pd.ExcelFile(file_path)
# 遍历每个sheet
for sheet_name in excel_file.sheet_names:
df = excel_file.parse(sheet_name)
# 获取列名
columns = list(df.columns)
# 判断是否需要删除列
if '区' not in columns and '省' not in columns and '街道' not in columns and 'id' not in columns and '日期' not in columns and '数量' not in columns and '国家' not in columns:
last_row = df.iloc[-1, :]
for i in range(1, len(last_row)):
if last_row[i] < 90:
df = df.drop(columns[i])
# 保存修改后的数据到原表格中
writer = pd.ExcelWriter(file_path, engine='openpyxl')
writer.book = pd.load_workbook(file_path)
df.to_excel(writer, sheet_name=sheet_name, index=False)
writer.save()
```
说明:
1. 读取Excel表格:使用`pd.ExcelFile()`函数读取Excel文件,并遍历每个sheet。
2. 获取列名:使用`list(df.columns)`获取每个sheet的列名,以便后续判断需要删除哪些列。
3. 判断是否需要删除列:如果列名不包括‘区’、‘省’、‘街道’、‘id’、‘日期’、‘数量’、‘国家’,则需要判断每一列的最后一个值是否低于90,如果是则删除该列数据。
4. 保存修改后的数据到原表格中:使用`pd.ExcelWriter()`函数将修改后的数据保存到原表格中。需要注意的是,需要先使用`pd.load_workbook()`函数加载原Excel文件,然后再使用`pd.to_excel()`函数将修改后的数据保存到对应的sheet中。