El bash de acceder a la columna de dataframe muestra “<método enlazado NDFrame.xxx …"

Creo el objeto DataFrame en el cuaderno Jupyter:

data = {'state':['Ohio','Ohio','Ohio','Nevada','Nevada'], 'year':[2000, 2001, 2002, 2000, 2001], 'pop':[1.5, 2.0, 3.6, 2.4, 2.9]} frame = DataFrame(data) 

Cuando estoy extrayendo la columna ‘año’, está bien:

 In [30]: frame.year Out[30]: 0 2000 1 2001 2 2002 3 2000 4 2001 Name: year, dtype: int64 

Pero cuando estoy extrayendo la columna ‘pop’ (frame.pop), el resultado es:

 Out[31]:  

¿Por qué el resultado no es el mismo que para “frame.year”?

pop es una función de nivel de dataframe. Lo que hay que hacer aquí es tratar de evitar usar el . Accessor para acceder a las columnas. Hay muchos atributos y funciones de dataframe que pueden entrar en conflicto con los nombres de sus columnas, en cuyo caso el . Invocará esos en lugar de tus columnas.

Desea utilizar el [..] dict accessor en su lugar:

 frame['pop'] 0 1.5 1 2.0 2 3.6 3 2.4 4 2.9 Name: pop, dtype: float64 

Si quieres usar pop , puedes. Así es como:

 frame.pop('pop') 0 1.5 1 2.0 2 3.6 3 2.4 4 2.9 Name: pop, dtype: float64 frame state year 0 Ohio 2000 1 Ohio 2001 2 Ohio 2002 3 Nevada 2000 4 Nevada 2001 

Tenga en cuenta que esto modifica el dataframe original, así que no lo haga a menos que esté tratando de eliminar columnas.

pop es un método de pandas.DataFrame . Necesitas usar el frame['pop']

La forma en que estoy usando … .eval

 frame.eval('pop') Out[108]: 0 1.5 1 2.0 2 3.6 3 2.4 4 2.9 dtype: float64