用Python处理EXCEL表格(Openpyxl)

        最近参加的数模比赛中需要处理有几百万行数据的EXCEL表格,刚刚接到这个任务时头是有点发昏的,大一的时候虽然学过Python,但还没有真正实现过用Python处理大数据。以题目中的附件一为例:附件一有60多万条数据附件二也有60多万条,加起来总共差不多有120多万条(有一题就是要我们筛选其中的某些数据。由于本人对EXCEL的不熟悉以及对编程的喜爱,因此在网上

搜索了不少关于如何用Python去处理大数据的方法:有很多方法,比如xlrd,pandas,openpyxl等等,本人在这里使用的是openpyxl。

        ①首先来看其中一个问题 ,在下面这样一个表中,需要我们根据create_dt这个属性计算出每天的日营业额及成本,也就是将日期相同的商品的售价及成本相加即可,代码如下:并将生成的表格记为“日营业额及成本(附件2).xlsx”

   

import openpyxl
from openpyxl import load_workbook

# 新建一个xlsx文件
wb = openpyxl.Workbook()
ws = wb.active
ws.cell(1, 1, '日期')
ws.cell(1, 2, '日营业额')
ws.cell(1, 3, '日成本')
# ws.cell(1, 4, '日利润')
workbook = load_workbook('补全并筛选后的表格(附件2).xlsx')
sheet = workbook['Sheet1']
num = sheet.max_row
k = 2
sums: int = sheet.cell(2, 6).value * sheet.cell(2, 8).value
sumt: int = sheet.cell(2, 6).value * sheet.cell(2, 9).value
judge = sheet.cell(2, 1).value
ws.cell(2, 1, sheet.cell(2, 1).value)
for i in range(3, num+1):
    if sheet.cell(i, 5).value == 1 and sheet.cell(i, 6).value > 0:
        if sheet.cell(i, 1).value == judge:
            sums += (sheet.cell(i, 6).value * sheet.cell(i, 8).value)
            sumt += (sheet.cell(i, 6).value * sheet.cell(i, 9).value)
            if i == num:
                ws.cell(k, 2, sums)
                ws.cell(k, 3, sumt)
        else:
            ws.cell(k+1, 1, sheet.cell(i, 1).value)
            ws.cell(k, 2, sums)
            ws.cell(k, 3
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值