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 09:04:46 浏览: 67
利用pandas将excel中数据抽取
这段代码主要是用 pandas 来读取 excel 文件,并按照“省份”字段筛选出不同省份的数据,并将每个省份的数据存储到不同的 excel 文件中。
其中,`pd.read_excel` 函数用来读取 excel 文件,`dtype` 参数用来指定读取后的数据类型,`shape` 函数用来获取数据的行数和列数,`data.iloc` 函数用来按照行索引和列索引获取数据,`data[(data["省份"] == department) & (data["处理情况"] == "未处理")]` 这个条件筛选语句用来筛选出符合条件的数据。
不过,这段代码中有一些比较低效的循环操作,可以使用 pandas 的条件筛选来替代,例如:
```python
new_df = data[(data["省份"] == department) & (data["处理情况"] == "未处理")]
```
这样就可以避免循环操作,提高代码效率。
阅读全文