python给excel排序_如何使用Python对Excel工作表排序

有几种方法可以做到这一点。第一个选项是利用^{},因为您已经标记了这个。最大的缺点是它不会以XLSX格式进行本机写入。

这些示例使用以下格式的excel文档:

nrnzp.png

利用xlrd和对answer的一些修改:import xlwt

from xlrd import open_workbook

target_column = 0 # This example only has 1 column, and it is 0 indexed

book = open_workbook('test.xlsx')

sheet = book.sheets()[0]

data = [sheet.row_values(i) for i in xrange(sheet.nrows)]

labels = data[0] # Don't sort our headers

data = data[1:] # Data begins on the second row

data.sort(key=lambda x: x[target_column])

bk = xlwt.Workbook()

sheet = bk.add_sheet(sheet.name)

for idx, label in enumerate(labels):

sheet.write(0, idx, label)

for idx_r, row in enumerate(data):

for idx_c, value in enumerate(row):

sheet.write(idx_r+1, idx_c, value)

bk.save('result.xls') # Notice this is xls, not xlsx like the original file is

这将输出以下工作簿:

tQTqB.png

另一个选项(以及可以利用XLSX输出的选项)是利用^{}。代码也更短:import pandas as pd

xl = pd.ExcelFile("test.xlsx")

df = xl.parse("Sheet1")

df = df.sort(columns="Header Row")

writer = pd.ExcelWriter('output.xlsx')

df.to_excel(writer,sheet_name='Sheet1',columns=["Header Row"],index=False)

writer.save()

这将输出:

GDW6Z.png

在^{}调用中,index被设置为False,这样熊猫数据帧索引就不会包含在excel文档中。其余的关键字应该是不言而喻的。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值