Maurizio-Ciullo

Funzione custom che controlla i duplicati

Nov 27th, 2021 (edited)
330
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 1.99 KB | None | 0 0
  1. #                -----------------------Funzione custom che controlla i duplicati in una lista-----------------------
  2.  
  3. Se vuoi sapere quali siano i duplicati però puoi fare in diversi modi.
  4.  
  5. Puoi fare un for-loop link: https://codefather.tech/blog/python-check-for-duplicates-in-list/
  6.  
  7. # Un modo...
  8.  
  9.     for i, o in enumerate(lista):
  10.  
  11.         if o in lista[i+1:len(lista)]:
  12.  
  13.              print("Alla posizione", i, "l'elemento", o, "è un duplicato")
  14.  
  15.  
  16.  
  17. # O se lo devi fare su tante liste puoi farlo usando una funzione:
  18.  
  19. def controlla_duplicati(lista):
  20.  
  21.     for i, o in enumerate(lista):
  22.  
  23.         if o in lista[i+1:len(lista)]:
  24.  
  25.              print("Alla posizione", i, "l'elemento", o, "è un duplicato")
  26.  
  27. list=["roma", "milano",  "roma", "firenze", "pippo"]
  28.  
  29. controlla_duplicati(list)
  30.  
  31. #                -----------------------Funzione custom che controlla i duplicati in una dataframe-----------------------
  32.  
  33. un modo semplice per fare questo è usare la funzione apposita di pandas “duplicate”
  34.  
  35. carichi la lista in un DataFrame pandas
  36.  
  37. lista_con_duplicati = [1, 2, 2, 3, 4, 3, 2]
  38.  
  39. df.columns = [["valori"]] # non necessario ma usato solo per rendere più leggibile il risultato
  40.  
  41. df = pd.DataFrame(lista_con_duplicati)
  42. questo è il risultato del caricamento
  43.  
  44.   valori
  45.  
  46. 0      1
  47.  
  48. 1      2
  49.  
  50. 2      2
  51.  
  52. 3      3
  53.  
  54. 4      4
  55.  
  56. 5      3
  57.  
  58. 6      2
  59. poi in questo modo ottieni tutti i valori non duplicati
  60.  
  61. not_duplicate = df[df.duplicated()==False]
  62.  
  63. print(not_duplicate)
  64. con questo ottieni
  65.  
  66.   valori
  67.  
  68. 0      1
  69.  
  70. 1      2
  71.  
  72. 3      3
  73.  
  74. 4      4
  75. in questo modo invece ottieni tutti i valori duplicati escluso il primo valore duplicato
  76.  
  77. duplicate = df[df.duplicated(keep='first')]
  78.  
  79. print(duplicate)
  80. con questo ottieni
  81.  
  82.   valori
  83.  
  84. 2      2
  85.  
  86. 5      3
  87.  
  88. 6      2
  89. se invece vuoi vedere tutti i valori duplicati usi
  90.  
  91. all_duplicate = df[df.duplicated(keep=False)]
  92.  
  93. print(all_duplicate)
  94. e ottieni
  95.  
  96.   valori
  97.  
  98. 1      2
  99.  
  100. 2      2
  101.  
  102. 3      3
  103.  
  104. 5      3
  105.  
  106. 6      2
  107.  
Add Comment
Please, Sign In to add comment