gpt4 book ai didi

Python查找给定列中的最高行

转载 作者:太空狗 更新时间:2023-10-30 01:21:27 28 4
gpt4 key购买 nike

我是 stackoverflow 的新手,最近学习了一些基本的 Python。这是我第一次使用 openpyxl。在我使用 xlrd 和 xlsxwriter 之前,我确实设法制作了一些有用的程序。但现在我需要一个 .xlsx 读写器。

有一个文件,我需要读取和编辑已存储在代码中的数据。假设 .xlsx 有五列数据:A、B、C、D、E。在 A 列中,我有超过 1000 行数据。在 D 列上,我有 150 行数据。

基本上,我希望程序找到给定列(比如 D)上包含数据的最后一行。然后,在 D 列的下一个可用行(最后一行 + 1)中写入存储的变量 data

问题是我不能使用 ws.get_highest_row() 因为它返回 A 列上的第 1000 行。

基本上,到目前为止,这就是我所拥有的:

data = 'xxx'
from openpyxl import load_workbook
wb = load_workbook('book.xlsx', use_iterators=True)
ws = wb.get_sheet_by_name('Sheet1')
last_row = ws.get_highest_row()

显然这根本行不通。 last_row 返回 1000。

最佳答案

问题是 get_highest_row() itself uses row dimensions实例来定义工作表中的最大行。 RowDimension 没有关于列的信息 - 这意味着我们不能用它来解决您的问题,必须以不同的方式处理它。

这是一种“丑陋”的 openpyxl 特定选项,但如果 use_iterators=True 将不起作用:

from openpyxl.utils import coordinate_from_string

def get_maximum_row(ws, column):
return max(coordinate_from_string(cell)[-1]
for cell in ws._cells if cell.startswith(column))

用法:

print get_maximum_row(ws, "A")
print get_maximum_row(ws, "B")
print get_maximum_row(ws, "C")
print get_maximum_row(ws, "D")

除此之外,我会按照@LondonRob 的建议使用pandas 解析内容并让它完成工作。

关于Python查找给定列中的最高行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31212525/

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