Réponses:
>>> 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'>
>>>
==================================================== ==========================
METTRE À JOUR
Si vous lisez ceci après juin 2017, il ixest obsolète dans pandas 0.20.2, alors ne l'utilisez pas. Utilisez locou à la ilocplace. Voir les commentaires et autres réponses à cette question.
.ilocn'était pas encore là à l'époque. En 2016, la bonne réponse est celle de Jeff (après tout, il est pandasDieu, remarquez ;-)). Je ne sais pas quelle est la politique de SO concernant la mise à jour des réponses en raison du changement d'API; Je suis honnêtement surpris par le nombre de votes pour cette réponse, je ne pense pas que cela soit utile pour les gens ...
ixne doit pas être utilisé plus, utilisez ilocplutôt: s = df.ix[:,0]. Voir cet article pour une comparaison de ilocet ix.
À partir de la version 0.11 +, ... utilisez df.iloc.
In [7]: df.iloc[:,0]
Out[7]:
0 1
1 2
2 3
3 4
Name: x, dtype: int64
Vous pouvez obtenir la première colonne sous forme de série en suivant le code:
x[x.columns[0]]
x[x.columns[x.columns.size-1]]
N'est-ce pas la manière la plus simple?
Par nom de colonne:
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'est pas générique - que se passe-t-il si le nom de la colonne contient des espaces? Que faire si le nom de la colonne coïncide avec le nom de l' DataFrameattribut -s? Il est plus général d'accéder aux colonnes en utilisant __getitem__(c'est-à-dire comme ceci:) df["x"].
Cela fonctionne très bien lorsque vous souhaitez charger une série à partir d'un fichier 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]]
où iest la position / numéro de la colonne (à partir de 0 ).
Donc, i = 0c'est pour la première colonne.
Vous pouvez également obtenir la dernière colonne en utilisant i = -1
df.set_index('x').y