Pandas:如何从列名获取列索引


您可以使用以下方法从 pandas 中的列名获取列索引值:

方法一:获取列名的列索引

 df. columns . get_loc (' this_column ')

方法二:获取多个列名的列索引

 cols = [' this_column ', ' that_column ']

[df. columns . get_loc (c) for c in cols if c in df]

以下示例展示了如何在实践中使用以下 pandas DataFrame 的每种方法:

 import pandas as pd

#createDataFrame
df = pd. DataFrame ({' store ': ['A', 'A', 'A', 'A', 'B', 'B', 'B', 'B'],
                   ' sales ': [18, 10, 14, 13, 19, 24, 25, 29],
                   ' returns ': [1, 2, 2, 3, 2, 3, 5, 4],
                   ' recalls ': [0, 0, 2, 1, 1, 2, 0, 1]})
#view DataFrame
print (df)

  store sales returns recalls
0 to 18 1 0
1 to 10 2 0
2 A 14 2 2
3 A 13 3 1
4 B 19 2 1
5 B 24 3 2
6 B 25 5 0
7 B 29 4 1

示例 1:获取列名的列索引

以下代码显示如何获取名为“returns”的列的列索引值:

 #get column index for column with the name 'returns'
df. columns . get_loc (' returns ')

2

名称为“return”的列的列索引值为2

注意:Python中的列索引值从0开始。因此,由于“return”是 DataFrame 的第三列,因此它的索引值为 2。

示例2:获取多个列名的列索引

下面的代码展示了如何获取DataFrame中多列的列索引值:

 #define list of columns to get index for
cols = [' store ', ' returns ', ' recalls ']

#get column index for each column in list
[df. columns . get_loc (c) for c in cols if c in df]

[0, 2, 3]

从结果我们可以看出:

  • 名称为“store”的列的列索引值为0
  • 名称为“return”的列的列索引值为2
  • 名为“reminders”的列的列索引值为3

注意:您可以在此处找到 pandas get_loc()函数的完整文档。

其他资源

以下教程解释了如何在 pandas 中执行其他常见任务:

如何从 Pandas DataFrame 获取单元格值
如何重命名 Pandas DataFrame 中的索引
如何在 Pandas 中按名称对列进行排序

添加评论

您的电子邮箱地址不会被公开。 必填项已用*标注