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-01-14 09:04:46 浏览: 57
详解pandas库pd.read_excel操作读取excel文件参数整理与实例
这段代码的功能是将一个Excel文件按照省份分组,并将每个省份的数据写入单独的Excel文件中。这段代码使用了pandas库,读取Excel文件、筛选数据、写入Excel文件的操作都使用了pandas提供的函数和方法。下面是代码的解释:
1. 读取Excel文件
```
data = pd.read_excel(r'E:\每日数据\MISPOS明细.xlsx',dtype={'商户编号':str,'终端编号':str, '处理情况': str})
```
这一行代码使用pandas的`read_excel`函数读取了一个Excel文件,并将文件数据存储在一个名为`data`的DataFrame对象中。`dtype`参数用于指定读取数据时的数据类型,这里将商户编号、终端编号、处理情况三列的数据类型分别指定为字符串类型。
2. 获取数据行数和列数
```
rows = data.shape[0] # 获取行数 shape[1]获取列数
```
这一行代码使用DataFrame对象的`shape`属性获取了数据的行数和列数,并分别将行数和列数存储在名为`rows`的变量中。
3. 将省份分类存储到列表中
```
department_list = []
for i in range(rows):
temp = data["省份"][i]
if temp not in department_list:
department_list.append(temp)
```
这一段代码使用循环遍历了DataFrame对象的`省份`列,并将该列中的所有不重复的省份存储在一个名为`department_list`的列表中。
4. 按照省份分组并写入Excel文件
```
for department in department_list:
new_df = data[(data["省份"] == department) & (data["处理情况"] == "未处理")]
new_df.to_excel(str(department) +"旧机具未处理明细" + ".xlsx", sheet_name=department, index=False)
```
这一段代码使用循环遍历`department_list`列表中的每个省份,并使用pandas的条件筛选功能(`data[(data["省份"] == department) & (data["处理情况"] == "未处理")]`)将该省份的数据筛选出来。然后,将筛选出来的数据存储在一个名为`new_df`的DataFrame对象中,并使用DataFrame对象的`to_excel`方法将该对象中的数据写入一个名为“省份名称+旧机具未处理明细.xlsx”的Excel文件中。`sheet_name`参数用于指定写入Excel文件的工作表名称,`index`参数用于指定是否写入行索引。
阅读全文