我正在尝试将数据从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)中提取数据?
答案 0 :(得分:4)
有没有一种方法可以仅从列单元格字母中提取数据 (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
,以查看熊猫正在读取哪些 列。