Próbowałem:
x=pandas.DataFrame(...)
s = x.take([0], axis=1)
I s
pobiera DataFrame, a nie Series.
>>> 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'>
>>>
==================================================== =========================
AKTUALIZACJA
Jeśli czytasz to po czerwcu 2017 r., ix
Zostało wycofane w pandach 0.20.2, więc nie używaj go. Użyj loc
lub iloc
zamiast. Zobacz komentarze i inne odpowiedzi na to pytanie.
df.set_index('x').y
.iloc
wtedy jeszcze nie było. W 2016 roku prawidłowa odpowiedź brzmi: Jeff (w końcu jestpandas
Bogiem ;-)). Nie jestem pewien, jakie są zasady SO dotyczące aktualizacji odpowiedzi w związku ze zmianą API; Jestem szczerze zaskoczony przez liczbę głosów oddanych na tę odpowiedź, nie sądzę, że było to użyteczne dla ludzi ...ix
została wycofana w wersji 0.20.ix
Nie należy stosować więcej, użyjiloc
zamiast:s = df.ix[:,0]
. Zobacz ten post, aby zobaczyć porównanieiloc
iix
.Od v0.11 +, ... użyj
df.iloc
.źródło
Możesz pobrać pierwszą kolumnę jako serię, korzystając z następującego kodu:
źródło
x[x.columns[x.columns.size-1]]
Czy to nie jest najprostszy sposób?
Według nazwy kolumny:
źródło
df.x
) nie jest ogólny - a co, jeśli nazwa kolumny zawiera spacje? Co się stanie, jeśli nazwa kolumny pokrywa się zDataFrame
nazwą atrybutu -s? Bardziej ogólne jest uzyskiwanie dostępu do kolumn za pomocą__getitem__
(tj. Takdf["x"]
:).Działa to świetnie, gdy chcesz załadować serię z pliku csv
źródło
gdzie
i
jest pozycją / numerem kolumny (zaczynając od 0 ).Tak
i = 0
jest w pierwszej kolumnie.Możesz również pobrać ostatnią kolumnę za pomocą
i = -1
źródło