pandas列中唯一值的返回顺序

2024-04-25 18:48:53 发布

您现在位置:Python中文网/ 问答频道 /正文

我试图找到一种更有效的方法来返回pandasdfindex值的index

对于下面的df,我想返回第一次出现唯一值的索引。在

import pandas as pd
import numpy as np

d = ({
    'Day' : ['Mon','Mon','Tues','Mon','Tues','Wed'],                                
     })

df = pd.DataFrame(data=d)

我可以手动统计唯一值的索引,并返回如下:

^{pr2}$

我想做点什么

first = (df['Day'] == 'Mon')

但第三个我还是要找到唯一的价值。有没有更有效的方法?在


Tags: 方法importnumpydataframepandasdfindexas
2条回答

IIUC,你可以使用:

df['Day'].mask(df['Day'].duplicated(keep=False)).dropna().index

更新

或者通过@Josh Friedlanders的建议更新:

^{pr2}$

如果要筛选所有唯一索引值,请将^{}keep=False一起使用:

print (df['Day'].drop_duplicates(keep=False))
5    Wed
Name: Day, dtype: object

print (df['Day'].drop_duplicates(keep=False).index)
Int64Index([5], dtype='int64')

或者:

^{pr2}$

如果要筛选第一个唯一值,则只使用^{}

print (df['Day'].drop_duplicates())
0     Mon
2    Tues
5     Wed
Name: Day, dtype: object

print (df['Day'].drop_duplicates().index)
Int64Index([0, 2, 5], dtype='int64')

相关问题 更多 >