gpt4 book ai didi

python - 如何使用 Python 对 Excel 工作表进行排序

转载 作者:太空宇宙 更新时间:2023-11-03 12:32:43 29 4
gpt4 key购买 nike

我正在使用 Python 3.4 和 xlrd。我想在处理之前根据主列对 Excel 工作表进行排序。是否有任何库可以执行此操作?

最佳答案

有几种方法可以做到这一点。第一个选项是利用 xlrd ,因为你有这个标签。最大的缺点是它本身不会写入 XLSX 格式。

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

Text Excel Layout

利用 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

这会输出以下工作簿:

XLRD output


另一种选择(也是可以利用 XLSX 输出的一种)是利用 pandas .代码也更短:

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()

这个输出:

Pandas Output

to_excel调用时,index 设置为 False,这样 Pandas 数据帧索引就不会包含在 excel 文档中。其余关键字应该是不言自明的。

关于python - 如何使用 Python 对 Excel 工作表进行排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27469182/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com