ho provato:Come ottenere la prima colonna di un DataFrame panda come una serie?
x=pandas.DataFrame(...)
s = x.take([0], axis=1)
E s
ottiene un dataframe, non una serie.
ho provato:Come ottenere la prima colonna di un DataFrame panda come una serie?
x=pandas.DataFrame(...)
s = x.take([0], axis=1)
E s
ottiene un dataframe, non una serie.
>>> 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'>
>>>
in 0.11
In [7]: df.iloc[:,0]
Out[7]:
0 1
1 2
2 3
3 4
Name: x, dtype: int64
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
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
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
Inoltre, non funziona se l'intestazione della colonna ha ad es. spazi in esso. –
Come posso ottenere la colonna 'y' come una serie e la colonna 'x' come suo indice? – LWZ
'df.set_index ('x'). Y' – herrfz
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. –