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)保留现有自动按省份输出文件,同时增加按输入省份输出文件
时间: 2024-03-14 09:47:01 浏览: 53
详解pandas库pd.read_excel操作读取excel文件参数整理与实例
要按输入的省份输出文件,你可以使用 `input()` 函数获取用户输入的省份,然后按照省份名字来保存文件。例如:
```python
import pandas as pd
# 读取数据
data = pd.read_excel(r'E:\每日数据\MISPOS明细.xlsx', dtype={'商户编号':str,'终端编号':str, '处理情况': str})
rows = data.shape[0]
# 获取所有省份列表
department_list = list(set(data["省份"]))
# 按省份保存文件
for department in department_list:
# 根据省份筛选数据
temp_df = data[(data["省份"] == department) & (data["处理情况"] == "未处理")]
# 如果筛选后的数据不为空,则保存文件
if not temp_df.empty:
# 获取用户输入的省份
province = input("请输入省份名(如:广东):")
# 根据用户输入的省份名保存文件
file_name = province + "旧机具未处理明细.xlsx"
temp_df.to_excel(file_name, sheet_name=department, index=False)
```
这样,程序会先读取所有的省份名称,并根据省份名称筛选数据。如果筛选后的数据不为空,则会提示用户输入省份名字,并按照输入的省份名字保存文件。注意,这里的文件名是根据用户输入的省份名字来命名的。
阅读全文