Antworten:
>>> 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'>
>>>
================================================== =========================
AKTUALISIEREN
Wenn Sie dies nach Juni 2017 lesen, ixist es in Pandas 0.20.2 veraltet, verwenden Sie es also nicht. Verwenden Sie locoder ilocstattdessen. Siehe Kommentare und andere Antworten auf diese Frage.
.ilocwar ich damals noch nicht da. 2016 ist die richtige Antwort Jeffs (schließlich ist er pandasGott, wohlgemerkt ;-)). Ich bin mir nicht sicher, wie SO bei der Aktualisierung von Antworten aufgrund von API-Änderungen vorgeht. Ich bin ehrlich überrascht von der Anzahl der Stimmen für diese Antwort, dachte nicht, dass es für die Leute so nützlich war ...
ixsollte nicht mehr verwendet werden, verwenden Sie ilocstattdessen : s = df.ix[:,0]. In diesem Beitrag finden Sie einen Vergleich von ilocund ix.
Sie können die erste Spalte als Serie erhalten, indem Sie den folgenden Code verwenden:
x[x.columns[0]]
x[x.columns[x.columns.size-1]]
Ab v0.11 +, ... verwenden df.iloc.
In [7]: df.iloc[:,0]
Out[7]:
0 1
1 2
2 3
3 4
Name: x, dtype: int64
Ist das nicht der einfachste Weg?
Nach Spaltenname:
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) nicht generisch - was ist, wenn der Spaltenname Leerzeichen enthält? Was ist, wenn der Name der Spalte mit dem DataFrameAttributnamen -s übereinstimmt ? Es ist allgemeiner, mit __getitem__(z. B. :) auf Spalten zuzugreifen df["x"].
Dies funktioniert hervorragend, wenn Sie eine Serie aus einer CSV-Datei laden möchten
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]]
Wo iist die Position / Nummer der Spalte (ab 0 ).
Also, i = 0ist für die erste Spalte.
Sie können die letzte Spalte auch mit abrufen i = -1
df.set_index('x').y