如何从 excel 列中提取数据到 Python 中的列表?

Posted

技术标签:

【中文标题】如何从 excel 列中提取数据到 Python 中的列表?【英文标题】:How to extract data from an excel column to a list in 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 列)中提取数据?

【问题讨论】:

“标签”是列的名称吗?它似乎没有找到该列。检查你的标题。 【参考方案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 正在读取哪些列

【讨论】:

以上是关于如何从 excel 列中提取数据到 Python 中的列表?的主要内容,如果未能解决你的问题,请参考以下文章

如何使用 Python 从多个文本文件中提取数据到 Excel? (每张纸一个文件的数据)

需要使用 Alteryx 或 Pandas 从 excel 列中提取特定文本

EXCEL VBA提取内容到指定位置

如何从python中的pandas数据框中的列中提取关键字(字符串)

如何从 python 中的图像(或 pdf 文件)中提取名称和手写数字?

如何从 Python Pandas Dataframe 中的 STRING 列中提取嵌套字典?