栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python

Python筛选处理Excel的两种方法(openpyxl与pandas)

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Python筛选处理Excel的两种方法(openpyxl与pandas)

Python处理Excel数据,有两种思路,
  • 一是通过相应的execl库进行操作,优点是最大限度保留了excel的特性,缺点是速度慢

  • 另一种是以数据的思维,通过Pandas等库进行数据处理,速度快,缺点是损失execl特性

需求:

读取一批excel表格文件,过滤出第三列数据符合某一条件的数据

方法1:利用 openpyxl库处理,思路是删除不符合需要的行
import openpyxl
​
select_list = [
"XXX",
"YYY"
]
​
#打开表格的第一个表单
wb = openpyxl.load_workbook("file_name.xlsx")
sheet = wb.worksheets[0]
​
#遍历行,删除不符合条件的行
for row in sheet.rows:
     for cell in row:
          if cell.column ==3 and (cell.value not in select_list):
              print(cell.coordinate, cell.value,cell.column,cell.row)
              sheet.delete_rows(cell.row)
              break
wb.save("new_file_name.xlsx")

经过测试,此方法速度很慢,适用数据不多的情况

方法2: 利用pandas进行处理,转存成csv格式
import csv
​
import openpyxl
import pandas as pd
​
select_list = [
    "AAA",
    "BBB"
]
​
datas = []
#pd打开,注意指定引擎
df = pd.read_excel("file_name.xlsx", engine ="openpyxl")
​
# 获取行号的索引,并对其进行遍历:
for i in df.index.values: 
     if df.loc[i].values[2] in select_list:
         print(df.loc[i].values)
         datas.append(df.loc[i].values.tolist())
​
#遍历写入结果文件
with open("new_file_name.csv", 'w', newline='') as csvfile:
    writer = csv.writer(csvfile)
    for row in datas:
        writer.writerow(row)

此方法速度快很多,但是结果格式需要一定微调

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/355055.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号