【问题标题】:How to extract data from an excel column to a list in Python?如何从 excel 列中提取数据到 Python 中的列表?
【发布时间】:2019-01-20 08:42:24
【问题描述】:

我正在尝试从 excel 中的列中提取数据到 Python 中的列表中。我有以下代码:

#Extracting Labels
read = pd.read_excel('Test-data-results.xlsx', sheetname=0) # can also index sheet by name or fetch all sheets
labels = read['Labels'].tolist()
print(labels)

当我运行此代码时,我得到一个关键错误: ....

 File "pandas/_libs/index.pyx", line 140, in pandas._libs.index.IndexEngine.get_loc

 File "pandas/_libs/index.pyx", line 162, in pandas._libs.index.IndexEngine.get_loc

 File "pandas/_libs/hashtable_class_helper.pxi", line 1492, in pandas._libs.hashtable.PyObjectHashTable.get_item

 File "pandas/_libs/hashtable_class_helper.pxi", line 1500, in pandas._libs.hashtable.PyObjectHashTable.get_item

 KeyError: 'Labels'

这是将数据附加到列表中的正确方法吗?有没有办法仅从列单元格字母(A 列)中提取数据?

【问题讨论】:

  • “标签”是列的名称吗?它似乎没有找到该列。检查你的标题。

标签: python excel list pandas


【解决方案1】:

有没有办法只从列单元格字母中提取数据 (A栏)?

Pandas 允许按列名(也称为标题)或整数位置进行索引。由于 A 列是第一列,您可以通过pd.DataFrame.iloc 使用后一个选项:

read = pd.read_excel(...)
labels = read.iloc[:, 0].tolist()

如果您需要更动态的解决方案并且不超过 26 列,则可以使用字典映射:

from string import ascii_uppercase

d = {v: k for k, v in enumerate(ascii_uppercase)}
labels = read.iloc[:, d['A']].tolist()

不过,一般来说,如果您事先知道,最好使用列名。出现您的错误是因为 Pandas 找不到标记为 'Labels' 的列。尝试打印 read.columns 以查看 Pandas 正在读取哪些列

【讨论】:

    猜你喜欢
    • 2021-06-22
    • 2021-10-14
    • 2021-03-22
    • 1970-01-01
    • 1970-01-01
    • 2020-12-02
    • 1970-01-01
    • 2021-03-11
    • 1970-01-01
    相关资源
    最近更新 更多