如何从 dataframe.loc 操作中加速列表追加

How to speed up list appending from dataframe.loc operation

我正在尝试获取每个唯一组件名称首次出现的索引,然后将索引附加到列表中。

我有大约 20k 行的数据框。

 mylist=[]

 for i in df['name']:
        mylist.append(df.loc[df.name==i].index[0])
 mylist=set(mylist)

如何加快上述过程?从数据帧追加到列表大约需要一分钟。

没有数据示例无法测试,但这里是:

df.reset_index().groupby('name').first()['index'].to_list()

一个最小的可复制示例如下所示:

pd.DataFrame({'name': ['ABBA', 'LZ', 'LZ', 'LZ', 'IronMaiden', 'PinkFloyd', 'LZ', 'PinkFloyd']})

数据帧:

         name
0        ABBA
1          LZ
2          LZ
3          LZ
4  IronMaiden
5   PinkFloyd
6          LZ
7   PinkFloyd

期望的结果:

[0, 1, 4, 5]