Eu tentei:
x=pandas.DataFrame(...)
s = x.take([0], axis=1)
E s
obtém um DataFrame, não uma Série.
>>> 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.
df.set_index('x').y
.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, useiloc
em vez disso:s = df.ix[:,0]
. Veja este post para uma comparação deiloc
eix
.A partir da v0.11 +, ... use
df.iloc
.fonte
Você pode obter a primeira coluna como uma série seguindo o código:
fonte
x[x.columns[x.columns.size-1]]
Não é este o caminho mais simples?
Por nome da coluna:
fonte
df.x
) não é genérico - e se o nome da coluna contiver espaços? E se o nome da coluna coincidir com oDataFrame
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
fonte
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
fonte