【问题标题】:How to Store An Entire Row Or Column In A Variable in Python如何在 Python 中的变量中存储整行或整列
【发布时间】:2021-06-20 15:14:37
【问题描述】:

我正在尝试将一列存储在单个变量中。但我不能

代码

import openpyxl
wb = openpyxl.load_workbook("coordinates.xlsx")  
sh2 = wb['sheet2']
sh1 = wb['sheet1']
x1 = (wb['sheet2'].columns["B"]).values
print(x1)

错误

 x1 = (wb['sheet2'].columns["B"]).values
TypeError: 'generator' object is not subscriptable

Process finished with exit code 1

为什么会这样?有没有其他方法可以将单列的全部数据存储在一个变量中?

【问题讨论】:

标签: python


【解决方案1】:

试试这个:

import openpyxl
wb = openpyxl.load_workbook("coordinates.xlsx")  
sh2 = wb['sheet2']
sh1 = wb['sheet1']['B']
x1 = [i.value for i in sh1]
print(x1)

【讨论】:

    【解决方案2】:

    https://stackoverflow.com/a/66772758/10163595 为您提供所需的具体答案。但是作为解释,wb['sheet2'].columns 是一个生成器对象,不能下标。

    您可以按如下方式使用它来访问各个列,然后访问单元格:

    for column in wb["sheet2"].columns:
        for cell in column:
            print(cell.value)
    

    上面的列变量在每次循环/迭代期间存储单个列的全部内容。单元格变量存储单个单元格的内容,您可以使用 value 属性访问存储在每个单元格中的数据。

    您也可以使用 iter_cols() 方法遍历每一列。

    【讨论】:

    • 我想在一个变量中存储一列,在第二个变量中存储第二列。iter_cols 我选择的范围是 min col 和 max col。在我的情况下,没有 min col 和 max col 因为有一个特定的列。你能指导一下吗?
    • 这与另一个答案中显示的过程相同。要将 A 列存储在变量中:“column_a = wb['sheet1']['A']”。将 B 列存储在变量中:“column_b = wb['sheet1']['B']”。
    猜你喜欢
    • 2023-03-30
    • 2013-11-08
    • 2020-09-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多