Risposte:
>>> 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'>
>>>
================================================== =========================
AGGIORNARE
Se stai leggendo questo dopo giugno 2017, ix
è stato deprecato in Panda 0.20.2, quindi non usarlo. Usa loc
o iloc
invece. Vedi commenti e altre risposte a questa domanda.
.iloc
non c'era ancora allora. Nel 2016, la risposta corretta è quella di Jeff (dopo tutto è pandas
Dio, intendiamoci ;-)). Non sono sicuro di quale sia la politica di SO in merito all'aggiornamento delle risposte dovuto alla modifica dell'API; Sono sinceramente sorpreso dal numero di voti per questa risposta, non pensavo fosse così utile per le persone ...
ix
non dovrebbe essere usato più, utilizzare iloc
invece: s = df.ix[:,0]
. Vedi questo post per un confronto di iloc
e ix
.
Da v0.11 +, ... usare df.iloc
.
In [7]: df.iloc[:,0]
Out[7]:
0 1
1 2
2 3
3 4
Name: x, dtype: int64
Puoi ottenere la prima colonna come una serie dal seguente codice:
x[x.columns[0]]
x[x.columns[x.columns.size-1]]
Non è questo il modo più semplice?
Per nome colonna:
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
) non è generico: cosa succede se il nome della colonna contiene spazi? Cosa succede se il nome della colonna coincide con il DataFrame
nome dell'attributo -s? È più generale accedere alle colonne usando __getitem__
(cioè in questo modo:) df["x"]
.
Funziona benissimo quando vuoi caricare una serie da un file 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]]
dove si i
trova la posizione / numero della colonna (a partire da 0 ).
Quindi, i = 0
è per la prima colonna.
Puoi anche ottenere l'ultima colonna usando i = -1
df.set_index('x').y