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 中按名称对列进行排序