如何从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]
答案 0 :(得分:4)
您需要Index.get_loc
或Index.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