Lo intenté:
x=pandas.DataFrame(...)
s = x.take([0], axis=1)
Y s
obtiene un DataFrame, no una Serie.
>>> import pandas as pd
>>> df = pd.DataFrame({'x' : [1, 2, 3, 4], 'y' : [4, 5, 6, 7]})
>>> df
x y
0 1 4
1 2 5
2 3 6
3 4 7
>>> s = df.ix[:,0]
>>> type(s)
<class 'pandas.core.series.Series'>
>>>
================================================== =========================
ACTUALIZAR
Si está leyendo esto después de junio de 2017, ix
ha quedado en desuso en pandas 0.20.2, así que no lo use. Uso loc
o en su iloc
lugar. Ver comentarios y otras respuestas a esta pregunta.
df.set_index('x').y
.iloc
todavía no estaba allí en ese entonces. En 2016, la respuesta correcta es la de Jeff (después de todo, espandas
Dios, ten en cuenta ;-)). No estoy seguro de cuál es la política de SO con respecto a la actualización de respuestas debido al cambio de API; Estoy sinceramente sorprendido por la cantidad de votos para esta respuesta, no pensé que fuera tan útil para las personas ...ix
quedó en desuso en la versión 0.20.ix
No debe utilizarse más, utiliceiloc
en su lugar:s = df.ix[:,0]
. Vea esta publicación para una comparación deiloc
yix
.Desde v0.11 +, ... uso
df.iloc
.fuente
Puede obtener la primera columna como Serie siguiendo el siguiente código:
fuente
x[x.columns[x.columns.size-1]]
¿No es esta la forma más simple?
Por nombre de columna:
fuente
df.x
) no es genérico: ¿qué sucede si el nombre de la columna contiene espacios? ¿Qué sucede si el nombre de la columna coincide con elDataFrame
nombre del atributo -s? Es más general acceder a las columnas usando__getitem__
(es decir, así:)df["x"]
.Esto funciona muy bien cuando desea cargar una serie desde un archivo csv
fuente
donde
i
es la posición / número de la columna (a partir de 0 ).Entonces,
i = 0
es para la primera columna.También puede obtener la última columna usando
i = -1
fuente