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 ix
est obsolète dans pandas 0.20.2, alors ne l'utilisez pas. Utilisez loc
ou à la iloc
place. Voir les commentaires et autres réponses à cette question.
.iloc
n'était pas encore là à l'époque. En 2016, la bonne réponse est celle de Jeff (après tout, il est pandas
Dieu, 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 ...
ix
ne doit pas être utilisé plus, utilisez iloc
plutôt: s = df.ix[:,0]
. Voir cet article pour une comparaison de iloc
et 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' DataFrame
attribut -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ù i
est la position / numéro de la colonne (à partir de 0 ).
Donc, i = 0
c'est pour la première colonne.
Vous pouvez également obtenir la dernière colonne en utilisant i = -1
df.set_index('x').y