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, ix
foi preterido nos pandas 0.20.2, portanto, não o use. Use loc
ou em iloc
vez disso. Veja comentários e outras respostas a esta pergunta.
.iloc
ainda não existia naquela época. Em 2016, a resposta correta é de Jeff (afinal ele é pandas
Deus, 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 ...
ix
foi descontinuado na versão 0.20.
ix
não deve mais ser usado, use iloc
em vez disso: s = df.ix[:,0]
. Veja este post para uma comparação de iloc
e 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 DataFrame
nome 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