writer读取佛山的excel表格所有的sheet的列名,如果每个sheet的列名称不是‘区’,‘省’,‘街道’, id ,‘日期’,‘数量’, ‘国家’ ,则以最后一行第一列之后每一个的数值是否低于90为判断,若低于则删除这列数据,最后将处理好的数据保存到原表格
时间: 2024-05-05 17:17:42 浏览: 92
中。
以下是Python代码实现:
```python
import pandas as pd
# 读取Excel文件
filename = '佛山.xlsx'
df_dict = pd.read_excel(filename, sheet_name=None)
# 处理每个sheet
for sheet_name, df in df_dict.items():
# 获取列名
columns = df.columns.tolist()
# 判断列名是否需要删除
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, 1:]
# 判断是否低于90
drop_columns = []
for i, val in last_row.iteritems():
if pd.isnull(val) or val < 90:
drop_columns.append(i)
# 删除需要删除的列
if drop_columns:
df.drop(columns=drop_columns, inplace=True)
# 保存处理好的数据到原表格
with pd.ExcelWriter(filename, mode='a') as writer:
df.to_excel(writer, sheet_name=sheet_name, index=False)
```
使用Pandas库,首先读取Excel文件,然后对每个sheet进行处理。对于每个sheet,首先获取列名,判断是否需要删除。如果需要删除,获取最后一行第一列之后的数值,并判断是否低于90。若低于,则记录需要删除的列。最后,删除需要删除的列,并将处理好的数据保存到原表格中。注意要用ExcelWriter打开文件,并以追加模式打开,否则会覆盖原文件。
阅读全文