Respuestas:
>>> 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, ixha quedado en desuso en pandas 0.20.2, así que no lo use. Uso loco en su iloclugar. Ver comentarios y otras respuestas a esta pregunta.
.iloctodavía no estaba allí en ese entonces. En 2016, la respuesta correcta es la de Jeff (después de todo, es pandasDios, 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 ...
ixNo debe utilizarse más, utilice ilocen su lugar: s = df.ix[:,0]. Vea esta publicación para una comparación de ilocy ix.
Desde v0.11 +, ... uso df.iloc.
In [7]: df.iloc[:,0]
Out[7]:
0 1
1 2
2 3
3 4
Name: x, dtype: int64
Puede obtener la primera columna como Serie siguiendo el siguiente código:
x[x.columns[0]]
x[x.columns[x.columns.size-1]]
¿No es esta la forma más simple?
Por nombre de columna:
In [20]: df = pd.DataFrame({'x' : [1, 2, 3, 4], 'y' : [4, 5, 6, 7]})
In [21]: df
Out[21]:
x y
0 1 4
1 2 5
2 3 6
3 4 7
In [23]: df.x
Out[23]:
0 1
1 2
2 3
3 4
Name: x, dtype: int64
In [24]: type(df.x)
Out[24]:
pandas.core.series.Series
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 el DataFramenombre 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
x = pd.read_csv('x.csv', index_col=False, names=['x'],header=None).iloc[:,0]
print(type(x))
print(x.head(10))
<class 'pandas.core.series.Series'>
0 110.96
1 119.40
2 135.89
3 152.32
4 192.91
5 177.20
6 181.16
7 177.30
8 200.13
9 235.41
Name: x, dtype: float64
df[df.columns[i]]
donde ies la posición / número de la columna (a partir de 0 ).
Entonces, i = 0es para la primera columna.
También puede obtener la última columna usando i = -1
df.set_index('x').y