首页 > 解决方案 > 查找列值相等的 pandas datafrmae 的最小索引

问题描述

data = """
id,name
100,A
100,B
101,C
101,D
101,pp;
212,E
212,F
215,ds
215,G
215,trtr
219, dsds
219, sas
219, dasa
300,Endüstrisi`
"""

df = pd.read_csv(StringIO(data))
df = pd.concat([df]*5)

我有上面的数据框,我得到了一个 numpy 的 id 数组ids = np.array([100,212,219])

我想获取第ids一个出现的原始数据框的索引df

我曾想过将 isin 函数与 indxmin 一起使用,但不幸的是,它不起作用。

我的输出应该是np.array([0,5,10])

标签: pandasindexingpython-3.8

解决方案


尝试drop_duplicates

s = df.drop_duplicates('id')
out = s[s['id'].isin(ids)].index.values
Out[168]: array([ 0,  5, 10], dtype=int64)

推荐阅读