增加自动按省份拆分生成EXCEL
时间: 2023-07-21 11:32:49 浏览: 73
好的,可以考虑修改代码,自动按照每个省份生成对应的 Excel 文件。可以按照以下步骤进行修改:
1. 首先,需要将代码中遍历 department_list 的部分注释掉,因为我们不再需要手动指定要生成哪些省份的 Excel 文件。
```
# for department in department_list:
# new_df = pd.DataFrame()
# for i in range(0, rows):
# if data["省份"][i] == department:
# new_df = pd.concat([new_df, data.iloc[[i], :]], axis=0, ignore_index=True)
# new_df.to_excel(str(department) +"旧机具未处理明细" + ".xlsx", sheet_name=department, index=False)
```
2. 接下来,需要先将数据按省份进行分组,然后遍历每个分组,将该分组的数据保存到对应的 Excel 文件中。可以使用 Pandas 的 groupby() 函数实现按省份分组:
```
grouped = data.groupby(['省份'])
for name, group in grouped:
new_df = group[group["处理情况"] == "未处理"]
new_df.to_excel(name + "旧机具未处理明细.xlsx", sheet_name=name, index=False)
```
这样,代码就会自动按照每个省份生成对应的 Excel 文件了。完整代码如下:
```
import pandas as pd
data = pd.read_excel(r'E:\每日数据\MISPOS明细.xlsx', dtype={'商户编号': str, '终端编号': str, '处理情况': str})
rows = data.shape[0] # 获取行数 shape[1]获取列数
# department_list = []
# for i in range(rows):
# temp = data["省份"][i]
# if temp not in department_list:
# department_list.append(temp) # 将省份的分类存在一个列表中
grouped = data.groupby(['省份'])
for name, group in grouped:
new_df = group[group["处理情况"] == "未处理"]
new_df.to_excel(name + "旧机具未处理明细.xlsx", sheet_name=name, index=False)
print("已生成所有省份的旧机具未处理明细 Excel 文件!")
```
这样,代码就会自动将数据按省份进行分组,并生成对应的 Excel 文件,无需手动输入省份名称。