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

时间:2018-08-13 15:05:55

标签: python excel list pandas

我正在尝试将数据从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 个答案:

答案 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,以查看熊猫正在读取哪些 列。