给出我的数据:
import numpy as np
import pandas as pd
data = pd.DataFrame(
{
'x': [11, 12, 13],
'y': [21, 22, 23]
},
index=['a', 'b', 'c']
)
我想找到与标签['a', 'c']
相对应的位置索引。通过目视检查,我知道它们是[0, 2]
,但这仅在玩具示例中是可能的。
“蛮力”方法是
my_lab = ['a', 'c']
my_pos = (data.index == my_idx).to_numpy().nonzero()[0]
是否有更好/更快/更优雅的方式来做到这一点?还是蛮力方法是唯一的方法?
答案 0 :(得分:1)
my_pos = data.index.get_indexer(my_lab)
print (my_pos)
[0 2]
my_pos = data.index.searchsorted(my_lab)
print (my_pos)
[0 2]