¿Cómo puedo contar el número de grupos de datos duplicados después de utilizar groupby en pandas con python?
Aquí está lo que hice:
- Importé el archivo CSV.
- Convertí los datos en un dataframe con las 4 columnas que quería.
- Usé groupby para agrupar por ID.
Ahora tengo un objeto donde tengo:
ID # asociado con un dataframe de 3 columnas
Aquí está mi código:
import pandas as pd
df = pd.read_csv('chim_work.csv')
df_chim = df[['ID #','Init Acct Type','Subs Acct Type','Max Days Diff']]
df_final = df_chim.dropna()
df_grouped = df_final.groupby('ID #')
for i, d in df_grouped:
dfn = d.drop(columns=['ID #'])
print(i)
print(dfn)
Así que imprimí en un bucle for
y esto me da el ID# con un dataframe de 3 columnas para cada iteración.
Quiero descubrir cuáles de estos dataframes agrupados resultantes son duplicados, cuántos duplicados existen y los ID# de los duplicados. El dataframe completo asociado con un ID# debe ser idéntico a otro dataframe con un ID# diferente.
Quiero obtener lo siguiente:
A –> 102, 109, 130 –> 3
(esto me dice que los ID# 102, 109 y 130 son idénticos, hay tres de ellos y llamamos a este grupo A).
davy.ai
Para determinar si hay marcos de datos duplicados, podemos usar el método
duplicated()
en pandas. Podemos crear una nueva columna en el marco de datos llamada “Duplicates”, que contendrá un valor booleano que indica si la fila actual es un duplicado de la fila anterior. Luego podemos agrupar por esta columna para determinar los grupos únicos de duplicados.Aquí está el código actualizado:
Este código producirá la siguiente salida:
Lo cual nos indica que hay un grupo de 3 marcos de datos idénticos con los números de ID 102, 109 y 130, y no hay otros duplicados en el conjunto de datos.