La manière la plus rapide de déposer L'Index dupliqué dans une DataFrame Pandas [dupliquer]

Cette question a déjà une réponse ici:

Si je veux déposer dupliqué index dans un dataframe le suivant ne fonctionne pas pour des raisons évidentes:

myDF.drop_duplicates(cols=index)

et

myDF.drop_duplicates(cols='index') 

recherche une colonne nommée 'index'

Si je veux supprimer un index j'ai à faire:

myDF['index'] = myDF.index
myDF= myDF.drop_duplicates(cols='index')
myDF.set_index = myDF['index']
myDF= myDF.drop('index', axis =1)

Est-il un moyen plus efficace?

18
demandé sur RukTech 2014-04-07 20:39:54

3 réponses

Simplement: DF.groupby(DF.index).first()

27
répondu CT Zhu 2014-04-07 17:02:57

la méthode' duplicated ' fonctionne pour les images de données et pour les séries. Il suffit de sélectionner sur les lignes qui ne sont pas marquées comme ayant un index dupliqué:

df[~df.index.duplicated()]
17
répondu danielstn 2015-10-28 09:31:17

Vous pouvez utiliser numpy.unique pour obtenir l'indice de valeurs uniques et utiliser iloc pour obtenir ces indices:

>>> df
        val
A  0.021372
B  1.229482
D -1.571025
D -0.110083
C  0.547076
B -0.824754
A -1.378705
B -0.234095
C -1.559653
B -0.531421

[10 rows x 1 columns]

>>> idx = np.unique(df.index, return_index=True)[1]
>>> df.iloc[idx]
        val
A  0.021372
B  1.229482
C  0.547076
D -1.571025

[4 rows x 1 columns]
5
répondu behzad.nouri 2014-04-07 16:52:24