python读取佛山的excel表格内所有sheet,如果列明不是‘区’,‘省’,‘街道’, id ,‘日期’,‘数量’, 国家 ,并且获取最后一行第一列之后的数据,数值低于90则删除这列数据,将处理好的数据保存到原表格
时间: 2023-10-08 10:06:55 浏览: 72
下面是实现该功能的代码:
```python
import pandas as pd
# 读取Excel文件
file_path = 'Foshan.xlsx'
data = pd.read_excel(file_path, sheet_name=None)
# 处理每个sheet
for sheet_name in data:
# 获取当前sheet的列名
column_names = list(data[sheet_name].columns)
# 判断是否包含不需要的列
if '区' not in column_names and '省' not in column_names and '街道' not in column_names \
and 'id' not in column_names and '日期' not in column_names \
and '数量' not in column_names and '国家' not in column_names:
# 获取最后一行第一列之后的数据
last_row = data[sheet_name].iloc[-1]
start_index = column_names.index(last_row.index[0]) + 1
last_row_data = last_row.iloc[start_index:]
# 删除数值低于90的列
for col in last_row_data.index:
if last_row_data[col] < 90:
data[sheet_name] = data[sheet_name].drop(columns=col)
# 保存修改后的Excel文件
with pd.ExcelWriter(file_path) as writer:
for sheet_name in data:
data[sheet_name].to_excel(writer, sheet_name=sheet_name, index=False)
```
首先使用`pd.read_excel`函数读取Excel文件,并使用参数`sheet_name=None`读取所有sheet。然后使用`for`循环处理每个sheet。
在循环中,使用`list(data[sheet_name].columns)`获取当前sheet的列名,并判断是否包含不需要的列。如果不包含,则使用`data[sheet_name].iloc[-1]`获取最后一行的数据,然后使用`last_row.index[0]`获取最后一行的第一个元素,也就是第一列的数据。根据该数据的索引位置计算出第一列之后的数据,并将其保存在`last_row_data`变量中。
接着,使用`for`循环遍历`last_row_data`中的每个元素,如果该元素小于90,则使用`data[sheet_name].drop(columns=col)`删除该列数据。
最后,使用`pd.ExcelWriter`和`to_excel`函数将修改后的数据保存到原Excel文件中。
阅读全文