260 votes

Comment obtenir une liste de tous les éléments en double en utilisant pandas en python ?

J'ai une liste d'articles qui ont probablement des problèmes d'exportation. J'aimerais obtenir une liste des éléments en double afin de pouvoir les comparer manuellement. Lorsque j'essaie d'utiliser pandas méthode dupliquée il ne renvoie que le premier doublon. Existe-t-il un moyen d'obtenir tous les doublons et pas seulement le premier ?

Une petite sous-section de mon ensemble de données ressemble à ceci :

ID,ENROLLMENT_DATE,TRAINER_MANAGING,TRAINER_OPERATOR,FIRST_VISIT_DATE
1536D,12-Feb-12,"06DA1B3-Lebanon NH",,15-Feb-12
F15D,18-May-12,"06405B2-Lebanon NH",,25-Jul-12
8096,8-Aug-12,"0643D38-Hanover NH","0643D38-Hanover NH",25-Jun-12
A036,1-Apr-12,"06CB8CF-Hanover NH","06CB8CF-Hanover NH",9-Aug-12
8944,19-Feb-12,"06D26AD-Hanover NH",,4-Feb-12
1004E,8-Jun-12,"06388B2-Lebanon NH",,24-Dec-11
11795,3-Jul-12,"0649597-White River VT","0649597-White River VT",30-Mar-12
30D7,11-Nov-12,"06D95A3-Hanover NH","06D95A3-Hanover NH",30-Nov-11
3AE2,21-Feb-12,"06405B2-Lebanon NH",,26-Oct-12
B0FE,17-Feb-12,"06D1B9D-Hartland VT",,16-Feb-12
127A1,11-Dec-11,"064456E-Hanover NH","064456E-Hanover NH",11-Nov-12
161FF,20-Feb-12,"0643D38-Hanover NH","0643D38-Hanover NH",3-Jul-12
A036,30-Nov-11,"063B208-Randolph VT","063B208-Randolph VT",
475B,25-Sep-12,"06D26AD-Hanover NH",,5-Nov-12
151A3,7-Mar-12,"06388B2-Lebanon NH",,16-Nov-12
CA62,3-Jan-12,,,
D31B,18-Dec-11,"06405B2-Lebanon NH",,9-Jan-12
20F5,8-Jul-12,"0669C50-Randolph VT",,3-Feb-12
8096,19-Dec-11,"0649597-White River VT","0649597-White River VT",9-Apr-12
14E48,1-Aug-12,"06D3206-Hanover NH",,
177F8,20-Aug-12,"063B208-Randolph VT","063B208-Randolph VT",5-May-12
553E,11-Oct-12,"06D95A3-Hanover NH","06D95A3-Hanover NH",8-Mar-12
12D5F,18-Jul-12,"0649597-White River VT","0649597-White River VT",2-Nov-12
C6DC,13-Apr-12,"06388B2-Lebanon NH",,
11795,27-Feb-12,"0643D38-Hanover NH","0643D38-Hanover NH",19-Jun-12
17B43,11-Aug-12,,,22-Oct-12
A036,11-Aug-12,"06D3206-Hanover NH",,19-Jun-12

Mon code ressemble à ceci actuellement :

df_bigdata_duplicates = df_bigdata[df_bigdata.duplicated(cols='ID')]

Il y a quelques éléments en double. Mais, lorsque j'utilise le code ci-dessus, je n'obtiens que le premier élément. Dans la référence API, je vois comment je peux obtenir le dernier élément, mais j'aimerais les avoir tous afin de pouvoir les inspecter visuellement pour voir pourquoi j'obtiens cette divergence. Ainsi, dans cet exemple, j'aimerais obtenir les trois entrées A036 et les deux entrées 11795, ainsi que toute autre entrée dupliquée, au lieu de la seule première. Toute aide est la bienvenue.

0voto

Taie Points 33

En vous inspirant des solutions ci-dessus, vous pouvez trier davantage les valeurs afin de pouvoir examiner les enregistrements triés en double :

df[df.duplicated(['ID'], keep=False)].sort_values(by='ID')

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X