Saltar al contenido

Pandas: ¿Por qué se necesitan corchetes dobles para seleccionar la columna después de la indexación booleana?

No olvides que en las ciencias un problema casi siempre tiene diferentes soluciones, de igual modo nosotros aquí te mostramos lo más óptimo y mejor.

Solución:

Para objetos pandas (Series, DataFrame), el operador de indexación [] solo acepta

  1. colname o lista de nombres de columna para seleccionar la(s) columna(s)
  2. rebanado o booleano array para seleccionar fila(s), es decir, solo se refiere a una dimensión del marco de datos.

Para df[[colname(s)]], los corchetes interiores son para lista y los corchetes exteriores son operadores de indexación, es decir, debe usar corchetes dobles si selecciona dos o más columnas. Con un nombre de columna, un solo par de corchetes devuelve una serie, mientras que los corchetes dobles devuelven un marco de datos.

También, df.ix[df['A'] < 3,['A','C']] o df.loc[df['A'] < 3,['A','C']] es mejor que la selección encadenada para evitar devolver una copia frente a una vista del marco de datos.

Consulte la documentación de pandas para obtener más información.

Porque no tienes columnas nombradas 'A','C'que es lo que estaría tratando de hacer, lo que generará un KeyErrorpor lo que debe usar un iterable para subseleccionar desde el df.

Asi que

df[df['A'] < 3]['A','C']

aumenta

Error de tecla: ('A', 'C')

que es diferente a

In [261]:
df[df['A'] < 3][['A','C']]

Out[261]:
   A  C
0  0  1
1  2  5

Esto no es diferente a intentar:

df['A','C']

por eso necesita corchetes dobles:

df[['A','C']]

Tenga en cuenta que la forma moderna es usar .ix:

In [264]:
df.ix[df['A'] < 3,['A','C']]

Out[264]:
   A  C
0  0  1
1  2  5

Para que esté operando en una vista en lugar de potencialmente una copia

Porque los corchetes internos son solo sintaxis de Python (literal) para la lista.

Los corchetes exteriores son la operación del indexador del objeto del marco de datos de pandas.

En este caso de uso interno ['A', 'B'] define la lista de columnas a pasar como único argumento a la operación del indexador, que se indica entre corchetes exteriores.

Aquí puedes ver las reseñas y valoraciones de los lectores

Si te ha resultado de provecho nuestro post, agradeceríamos que lo compartas con otros juniors de esta manera nos ayudas a difundir esta información.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *