python中用xlrd与pandas工具生成excel表格

2 篇文章 0 订阅
2 篇文章 0 订阅
前言

使用xlrd工具对excel表格进行处理,并使用pandas工具重新生成新的excel表格

使用
任务需求

处理前:
在这里插入图片描述处理后:
在这里插入图片描述

代码展示
# -*- coding: utf-8 -*-

import xlrd
import pandas as pd
import numpy as np


redaExcel = xlrd.open_workbook("confirm.xls")
copyTable = redaExcel.sheet_by_index(0)

readTableData = []
for i in range(1, copyTable.nrows):
    retailer = copyTable.cell(i, 1).value
    price = copyTable.cell(i, 3).value
    weight = copyTable.cell(i, 4).value
    info = {"retailer": retailer, "price": price, "weight": weight}
    readTableData.append(info)

getAllData = [list(info.keys()) + ["totalValue"]]
for j in range(len(readTableData)):
    getRowData = list(readTableData[j].values())
    getAllData.append(getRowData + [getRowData[-1] * getRowData[-2]])

data = np.asarray(getAllData)

# 方法一
writeInfo = [list(data[:, 0][1::]), list(data[:, 1][1::]), list(data[:, 2][1::])]
index = pd.MultiIndex.from_arrays(writeInfo, names=tuple(list(data[0, :][:-1])))
writeInfoToExcel = pd.DataFrame({'{}'.format(list(data[0, :])[-1]): list(data[:, 3][1::])}, index=index)
print(writeInfoToExcel)
writeInfoToExcel.to_excel('debug.xls')

# 方法二
# writeInfoToExcel = pd.DataFrame({'{}'.format(list(data[0, :])[0]): list(data[:, 0][1::]),
#                                     '{}'.format(list(data[0, :])[1]): list(data[:, 1][1::]),                                    
#                                     '{}'.format(list(data[0, :])[2]): list(data[:, 2][1::]),                                    
#                                     '{}'.format(list(data[0, :])[3]): list(data[:, 3][1::]),                                    
#                                     }
#                                 )
# print(writeInfoToExcel)
# writeInfoToExcel.to_excel('debug.xls')
补充

python之numpy的使用
python之pandas的使用
python使用xlrd模块读取excel文件内容

结语

参考python官方指导手册: python-excel

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值