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)

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

  • 1
    点赞
  • 43
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值