从DataFrame中的标签获取列号

时间:2017-07-09 11:35:19

标签: python pandas

例如,

如何从DataFrame中的标签获取列号。

import pandas as pd
from pandas import DataFrame

df = DataFrame({'key': ['b', 'b', 'a', 'c', 'a', 'b'],
                'data1': range(6)},
                index=['a1','a2','a3','a4','a5','a6'])
In[31]:df
Out[31]: 
      data1 key
a1      0   b
a2      1   b
a3      2   a
a4      3   c
a5      4   a
a6      5   b

如果我跑

df.iloc[2,1]

它将返回'a'。 问题是,我只知道列标签是'key',我怎样才能获得列号?然后我可以使用df.iloc。

你知道,.ix在pandas中已弃用,否则我只会使用df.ix [2,'key']。

我只知道类似问题的解决方案:从列号中获取列标签。例如,

df.loc['a3',df.iloc[:,[1]].columns]

1 个答案:

答案 0 :(得分:4)

您需要Index.get_locIndex.searchsorted

a = df.columns.get_loc('key')
print (a)
1
a = df.columns.searchsorted('key')
print (a)
1

然后iloc效果很好:

a = df.iloc[2, df.columns.get_loc('key')]
print (a)
a