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, 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.
.iloc
todavía no estaba allí en ese entonces. En 2016, la respuesta correcta es la de Jeff (después de todo, es pandas
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
No debe utilizarse más, utilice iloc
en su lugar: s = df.ix[:,0]
. Vea esta publicación para una comparación de iloc
y 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 DataFrame
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
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 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
df.set_index('x').y