J'ai essayé:
x=pandas.DataFrame(...)
s = x.take([0], axis=1)
Et s
obtient un DataFrame, pas une série.
>>> 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.
df.set_index('x').y
.iloc
n'était pas encore là à l'époque. En 2016, la bonne réponse est celle de Jeff (après tout, il estpandas
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
est obsolète dans la version 0.20.ix
ne doit pas être utilisé plus, utiliseziloc
plutôt:s = df.ix[:,0]
. Voir cet article pour une comparaison deiloc
etix
.À partir de la version 0.11 +, ... utilisez
df.iloc
.la source
Vous pouvez obtenir la première colonne sous forme de série en suivant le code:
la source
x[x.columns[x.columns.size-1]]
N'est-ce pas la manière la plus simple?
Par nom de colonne:
la source
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
la source
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
la source