2 votos

¿Cómo seleccionar elementos de columnas específicas como lista de un dataframe de pandas?

Tengo un dataframe como este :

  A  B  C   D 
---------------
0  A  0  C  D
1  A  0  C  D
2  0  B  C  0
3  A  0  0  D
4  0  B  C  0
5  A  0  0  0

¿Cómo convertirlo a esta forma (no se consideran los ceros que aparecen) :

   A  B  C  D    E
----------------------
0  A  0  C  D  [A,C,D]
1  A  0  C  D  [A,C,D]
2  0  A  C  0  [A,C]
3  A  0  0  D  [A,D]
4  0  A  C  0  [A,C]
5  A  0  0  0  [A]

Y finalmente en un conjunto de elementos como :

[{A,C,D},{A,C,D},{A,C},{A,D},{A,C},{A}]

4voto

jezrael Puntos 262333

Utilice la comprensión de listas anidadas con filtrado 0:

#if 0 is number change '0' to 0
df['E'] = [[y for y in x if y != '0'] for x in df.values.tolist()]
print (df)
   A  B  C  D          E
0  A  0  C  D  [A, C, D]
1  A  0  C  D  [A, C, D]
2  0  B  C  0     [B, C]
3  A  0  0  D     [A, D]
4  0  B  C  0     [B, C]
5  A  0  0  0        [A]

Y para los conjuntos sets:

s = [set([y for y in x if y != '0']) for x in df.values.tolist()]
print (s)
[{'A', 'D', 'C'}, {'A', 'D', 'C'}, {'C', 'B'}, {'A', 'D'}, {'C', 'B'}, {'A'}]

Iteramos.com

Iteramos es una comunidad de desarrolladores que busca expandir el conocimiento de la programación mas allá del inglés.
Tenemos una gran cantidad de contenido, y también puedes hacer tus propias preguntas o resolver las de los demás.

Powered by:

X