Obtener filas basadas en valores distintos de una columna
¿ Cómo puedo obtener las filas por valores distintos COL2
?
Por ejemplo, tengo el marco de datos a continuación:
COL1 COL2
a.com 22
b.com 45
c.com 34
e.com 45
f.com 56
g.com 22
h.com 45
Quiero obtener las filas basadas en valores únicos en COL2
:
COL1 COL2
a.com 22
b.com 45
c.com 34
f.com 56
Entonces, ¿cómo puedo conseguir eso? Le agradecería mucho si alguien pudiera brindarme alguna ayuda.
Aceptado
Úselo drop_duplicates
con la columna especificada COL2
para verificar duplicados:
df = df.drop_duplicates('COL2')
#same as
#df = df.drop_duplicates('COL2', keep='first')
print (df)
COL1 COL2
0 a.com 22
1 b.com 45
2 c.com 34
4 f.com 56
También puedes conservar solo los últimos valores:
df = df.drop_duplicates('COL2', keep='last')
print (df)
COL1 COL2
2 c.com 34
4 f.com 56
5 g.com 22
6 h.com 45
O eliminar todos los duplicados:
df = df.drop_duplicates('COL2', keep=False)
print (df)
COL1 COL2
2 c.com 34
4 f.com 56
Puede usarlo groupby
en combinación con first
y last
métodos. Para obtener la primera fila de cada grupo:
df.groupby('COL2', as_index=False).first()
Producción:
COL2 COL1
0 22 a.com
1 34 c.com
2 45 b.com
3 56 f.com
Para obtener la última fila de cada grupo:
df.groupby('COL2', as_index=False).last()
Producción:
COL2 COL1
0 22 g.com
1 34 c.com
2 45 h.com
3 56 f.com