writer读取佛山的excel表格,如果列名称等于 区 或者 省 或者 街道 , id , 日期 , 数量 , 国家 ,则删除该列
时间: 2024-01-18 12:02:57 浏览: 91
以下是Python代码实现:
```python
import pandas as pd
# 读取Excel表格
df = pd.read_excel('佛山表格.xlsx')
# 获取列名称列表
columns = df.columns.tolist()
# 需要删除的列名称列表
delete_columns = ['区', '省', '街道', 'id', '日期', '数量', '国家']
# 删除需要删除的列
for column in delete_columns:
if column in columns:
df = df.drop(columns=[column])
# 输出处理后的表格
print(df)
```
其中,`pd.read_excel()`函数用于读取Excel表格,返回一个DataFrame对象。`df.columns.tolist()`方法用于获取列名称列表。`df.drop()`方法用于删除指定的列,`columns`参数接受需要删除的列名称列表。最后,输出处理后的表格即可。
相关问题
writer读取佛山的excel表格每个的sheet的列名,如果列名称不是‘区’或者‘省’或者‘街道’, id ,‘日期’,‘数量’, ‘国家’ ,则以最后一行第一列之后每一个的数值是否低于90为判断,若低于则删除这列数据,最后将处理好的数据保存到原表格
中。
代码如下:
```
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中。
writer读取佛山的excel表格所有的sheet,如果列名称不是‘区’,‘省’,‘街道’, id ,‘日期’,‘数量’, ‘国家’ ,则以最后一行第一列之后的数据,判断数值是否低于90,低于则删除这列数据,最后将处理好的数据保存到原表格
中。
以下是代码实现:
```python
import pandas as pd
# 读取Excel文件
filename = '佛山.xlsx'
data = pd.read_excel(filename, sheet_name=None)
# 循环遍历所有sheet
for sheet_name in data.keys():
# 获取当前sheet的列名
columns = data[sheet_name].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 = data[sheet_name].iloc[-1, 1:]
# 判断数据是否低于90
need_drop = last_row < 90
# 删除数据
data[sheet_name] = data[sheet_name].drop(columns=last_row.index[need_drop])
# 保存处理好的数据到原表格中
with pd.ExcelWriter(filename) as writer:
for sheet_name in data.keys():
data[sheet_name].to_excel(writer, sheet_name=sheet_name, index=False)
```
该代码首先读取Excel文件,然后循环遍历所有sheet,获取当前sheet的列名并判断是否需要删除数据。如果需要删除,就获取最后一行第一列之后的数据,并判断是否低于90,然后删除数据。最后,将处理好的数据保存到原表格中。
阅读全文