Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

440
Vistas
¿Contar valores únicos en una columna en el marco de datos de pandas como en Qlik?

Si tengo una tabla como esta:

 df = pd.DataFrame({ 'hID': [101, 102, 103, 101, 102, 104, 105, 101], 'dID': [10, 11, 12, 10, 11, 10, 12, 10], 'uID': ['James', 'Henry', 'Abe', 'James', 'Henry', 'Brian', 'Claude', 'James'], 'mID': ['A', 'B', 'A', 'B', 'A', 'A', 'A', 'C'] })

Puedo count(distinct hID) en Qlik para llegar a un conteo de 5 para hID único. ¿Cómo hago eso en python usando un marco de datos de pandas? ¿O tal vez una matriz numpy? Del mismo modo, si tuviera que count(hID) , obtendría 8 en Qlik. ¿Cuál es la forma equivalente de hacerlo en pandas?

over 4 years ago · Santiago Trujillo
3 Respuestas
Responde la pregunta

0

Cuente valores distintos, use nunique :

 df['hID'].nunique() 5

Cuente solo valores no nulos, use count :

 df['hID'].count() 8

Cuente los valores totales, incluidos los valores nulos, use el atributo de size :

 df['hID'].size 8

Editar para agregar condición

Utilice la indexación booleana:

 df.loc[df['mID']=='A','hID'].agg(['nunique','count','size'])

O usando query :

 df.query('mID == "A"')['hID'].agg(['nunique','count','size'])

Producción:

 nunique 5 count 5 size 5 Name: hID, dtype: int64
over 4 years ago · Santiago Trujillo Denunciar

0

Si asumo que los datos son el nombre de su marco de datos, puede hacer:

 data['race'].value_counts()

esto le mostrará el elemento distintivo y su número de ocurrencia.

over 4 years ago · Santiago Trujillo Denunciar

0

O obtenga el número de valores únicos para cada columna:

 df.nunique() dID 3 hID 5 mID 3 uID 5 dtype: int64

Nuevo en pandas 0.20.0 pd.DataFrame.agg

 df.agg(['count', 'size', 'nunique']) dID hID mID uID count 8 8 8 8 size 8 8 8 8 nunique 3 5 3 5

Siempre has podido hacer una groupby agg Usé stack al final porque me gusta más la presentación.

 df.groupby('mID').agg(['count', 'size', 'nunique']).stack() dID hID uID mID A count 5 5 5 size 5 5 5 nunique 3 5 5 B count 2 2 2 size 2 2 2 nunique 2 2 2 C count 1 1 1 size 1 1 1 nunique 1 1 1
over 4 years ago · Santiago Trujillo Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda