numpy PandasDF将重复元素的索引作为列表返回

e3bfsja2  于 2022-11-10  发布在  其他
关注(0)|答案(3)|浏览(129)

我希望将重复的列元素的索引作为列表。到目前为止,我发现的方式是

test = ['a', 'a', 'b', 'c', 'b']
testdf = pd.DataFrame(test, columns=['test'])
np.asarray(np.where(list(testdf['test'].duplicated()))).tolist()[0]

# [1, 4]

这似乎错综复杂得可笑。
还有更好的办法吗?

kxe2p93d

kxe2p93d1#

可以将.duplicated().tolist()一起使用

testdf.index[testdf.test.duplicated()].tolist()
sczxawaw

sczxawaw2#

只需对索引进行索引即可:

testdf.index[testdf['test'].duplicated()]

添加to_list

testdf.index[testdf['test'].duplicated()].to_list()

产出:

[1, 4]
9wbgstp7

9wbgstp73#

%%time

test = ['a', 'a', 'b', 'c', 'b']
testdf = pd.DataFrame(test, columns=['test'])
testdf[testdf.test.duplicated()].index.to_list()

# Wall time: 2 ms

# [1, 4]

相关问题