2013-03-12 7 views

risposta

79
>>> 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'> 
>>> 
+0

Come posso ottenere la colonna 'y' come una serie e la colonna 'x' come suo indice? – LWZ

+4

'df.set_index ('x'). Y' – herrfz

+3

varrebbe la pena aggiungere l'alternativa .iloc (come proposto da Jeff più in basso in questa pagina), poiché non è ambigua in presenza di colonne con numeri per i nomi. –

59

è possibile ottenere la prima colonna come una serie dal seguente codice:

x[x.columns[0]] 
+0

come posso ottenere l'ultima colonna del genere? – Polly

+1

x [x.colonne [-1]] – user48956

+0

Anche gli altri funzionano bene, ma questo sembra più intuitivo. – pshep123

34
in 0.11 

In [7]: df.iloc[:,0] 
Out[7]: 
0 1 
1 2 
2 3 
3 4 
Name: x, dtype: int64 
+0

Questa è la versione più compatibile con le nuove versioni e anche con quelle precedenti. E probabilmente il più efficiente dal momento che il team di sviluppo sta promuovendo ufficialmente questo approccio. – gaborous

7

Non è questo il modo più semplice?

In nome della 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 
+5

In questo caso specifico si conosce il nome della prima colonna ("x"), ma quale era la domanda: "Come posso accedere alla prima colonna, INDIPENDENTE del suo nome". Inoltre, l'accesso a colonne come questa ('df.x') non è generico - cosa succede se il nome della colonna contiene spazi? Cosa succede se il nome della colonna coincide con il nome attributo 'DataFrame'-s? È più generale accedere alle colonne usando '__getitem__' (ad esempio:' df ["x"] '). – ponadto

+0

Inoltre, non funziona se l'intestazione della colonna ha ad es. spazi in esso. –

Problemi correlati