string - seleccionar - recorrer data frame pandas
Acceso a columnas pandas con nombres de columnas que contienen espacios (2)
Si importo o creo una columna de pandas que no contiene espacios, puedo acceder a ella como tal:
df1 = DataFrame({''key'': [''b'', ''b'', ''a'', ''c'', ''a'', ''a'', ''b''],
''data1'': range(7)})
df1.data1
que me devolvería esa serie. Sin embargo, si esa columna tiene un espacio en su nombre, no se puede acceder a través de ese método:
df2 = DataFrame({''key'': [''a'',''b'',''d''],
''data 2'': range(3)})
df2.data 2 # <--- not the droid i''m looking for.
Sé que puedo acceder usando .xs ():
df2.xs(''data 2'', axis=1)
Tiene que haber otra forma. Lo busqué en Google como loco y no puedo pensar en otra forma de googlearlo. He leído las 96 entradas aquí en SO que contienen "columna" y "cadena" y "pandas" y no pude encontrar respuesta previa. ¿Es esta la única manera, o hay algo mejor?
¡Gracias!
Creo que la forma predeterminada es usar:
df1 = pandas.DataFrame({''key'': [''b'', ''b'', ''a'', ''c'', ''a'', ''a'', ''b''],
''dat a1'': range(7)})
df1[''dat a1'']
Los otros métodos, como exponerlo como un atributo, son más por conveniencia.
Publicación anterior, pero puede ser interesante: una idea (que es destructiva pero hace el trabajo si la quieres rápida y sucia) es cambiar el nombre de las columnas con guiones bajos:
df1.columns = [c.replace('' '', ''_'') for c in df1.columns]