Obtener filas basadas en valores distintos de una columna

Resuelto import.zee asked hace 7 años • 2 respuestas

¿ 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.

import.zee avatar Apr 29 '17 18:04 import.zee
Aceptado

Úselo drop_duplicatescon la columna especificada COL2para 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
jezrael avatar Apr 29 '2017 11:04 jezrael

Puede usarlo groupbyen combinación con firsty lastmé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
Mykola Zotko avatar Feb 05 '2022 09:02 Mykola Zotko