按名称获取多个pandas列的索引

时间:2014-04-08 10:43:46

标签: python numpy pandas dataframe

我想获得一系列pandas数据帧列的数字索引。

有一栏非常简单:

nonzero(df.columns.values == 'conditionA')

但有多个元素? 我有一些有用的东西,但又冗长又丑陋:

df = pd.DataFrame(columns=['conditionF', 'conditionB', 'conditionA', 'conditionD', 'conditionC'])

cols_to_find = ['conditionA', 'conditionB', 'conditionC']
[i for i in range(len(df.columns.values)) if df.columns.tolist()[i] in cols_to_find ]

更好的想法?

1 个答案:

答案 0 :(得分:0)

这样做,并且还保留了顺序:

[df.columns.get_loc(col) for col in cols_to_find]
[2, 1, 4]

列表理解是你的朋友。