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) # 将省份的分类存在一个列表中 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) # 上面的循环效率太低了,这么做太蠢了,其实可以用pandas的条件筛选 new_df = data[(data["省份"] == department) & (data["处理情况"] == "未处理")] # 如果多条件筛选,new_df = data[(data["省份"] == department)&()&()] 括号里写条件用 & 连起来 new_df.to_excel(str(department) + "旧机具未处理明细" + ".xlsx", sheet_name=department, index=False)在此代码中增加可通过输入省份单独生成excel,和按回车继续
时间: 2024-01-14 19:04:46 浏览: 75
功能说明-详解pandas库pd.read_excel操作读取excel文件参数整理与实例
可以尝试如下代码实现:
```
import pandas as pd
data = pd.read_excel(r'E:\每日数据\MISPOS明细.xlsx', dtype={'商户编号':str, '终端编号':str, '处理情况':str})
department_list = data['省份'].unique().tolist() # 获取所有省份并去重
while True:
print("请输入要生成excel的省份,或按回车继续:")
department = input()
if department == "": # 如果输入为空,则跳出循环
break
if department not in department_list: # 如果输入的省份不存在,则提示并重新输入
print("输入的省份不存在,请重新输入!")
continue
new_df = data[(data['省份'] == department) & (data['处理情况'] == '未处理')] # 筛选出符合要求的数据
new_df.to_excel(str(department) + "旧机具未处理明细" + ".xlsx", sheet_name=department, index=False) # 生成excel文件
print("已完成全部生成excel的操作!")
```
这段代码可以实现根据输入的省份单独生成对应的excel文件,或者按回车键直接生成所有省份的excel文件。同时,如果输入的省份不存在,则会提示并要求重新输入。
阅读全文