Respostas:
>>> 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'>
>>>
==================================================== =========================
ATUALIZAR
Se você está lendo isso depois de junho de 2017, ixfoi preterido nos pandas 0.20.2, portanto, não o use. Use locou em ilocvez disso. Veja comentários e outras respostas a esta pergunta.
.ilocainda não existia naquela época. Em 2016, a resposta correta é de Jeff (afinal ele é pandasDeus, lembre-se ;-)). Não sei qual é a política da SO em relação à atualização de respostas devido a alterações na API; Sinceramente estou surpreso com o número de votos para esta resposta, não acho que foi tão útil para as pessoas ...
ixfoi descontinuado na versão 0.20.
ixnão deve mais ser usado, use ilocem vez disso: s = df.ix[:,0]. Veja este post para uma comparação de iloce ix.
A partir da v0.11 +, ... use df.iloc.
In [7]: df.iloc[:,0]
Out[7]:
0 1
1 2
2 3
3 4
Name: x, dtype: int64
Você pode obter a primeira coluna como uma série seguindo o código:
x[x.columns[0]]
x[x.columns[x.columns.size-1]]
Não é este o caminho mais simples?
Por nome da coluna:
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) não é genérico - e se o nome da coluna contiver espaços? E se o nome da coluna coincidir com o DataFramenome do atributo -s? É mais geral acessar colunas usando __getitem__(ou seja, assim:) df["x"].
Isso funciona muito bem quando você deseja carregar uma série de um arquivo 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]]
onde ié a posição / número da coluna (começando em 0 ).
Então, i = 0é para a primeira coluna.
Você também pode obter a última coluna usando i = -1
df.set_index('x').y