如何从 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 列中提取特定文本
如何从python中的pandas数据框中的列中提取关键字(字符串)