Saya mencoba:
x=pandas.DataFrame(...)
s = x.take([0], axis=1)
Dan s
mendapat DataFrame, bukan Seri.
>>> 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'>
>>>
================================================== =========================
MEMPERBARUI
Jika Anda membaca ini setelah Juni 2017, ix
telah ditinggalkan dalam panda 0.20.2, jadi jangan gunakan itu. Gunakan loc
atau iloc
sebagai gantinya. Lihat komentar dan jawaban lain untuk pertanyaan ini.
df.set_index('x').y
.iloc
belum ada di sana saat itu. Pada tahun 2016, jawaban yang benar adalah milik Jeff (lagipula dia adalahpandas
Tuhan, ingatlah ;-)). Saya tidak yakin apa kebijakan SO mengenai pembaruan jawaban karena perubahan API; Jujur saya terkejut dengan jumlah suara untuk jawaban ini, tidak berpikir itu berguna bagi orang-orang ...ix
sudah tidak digunakan lagi dalam versi 0.20.ix
tidak boleh digunakan lagi, gunakaniloc
sebagai gantinya:s = df.ix[:,0]
. Lihat posting ini untuk perbandinganiloc
danix
.Dari v0.11 +, ... gunakan
df.iloc
.sumber
Anda bisa mendapatkan kolom pertama sebagai Seri dengan kode berikut:
sumber
x[x.columns[x.columns.size-1]]
Bukankah ini cara yang paling sederhana?
Menurut nama kolom:
sumber
df.x
) bukan generik - bagaimana jika nama kolom berisi spasi? Bagaimana jika nama kolom bertepatan denganDataFrame
nama atribut -s? Ini lebih umum untuk mengakses kolom menggunakan__getitem__
(yaitu seperti:)df["x"]
.Ini berfungsi dengan baik ketika Anda ingin memuat seri dari file csv
sumber
di mana
i
posisi / nomor kolom (mulai dari 0 ).Begitu,
i = 0
untuk kolom pertama.Anda juga bisa mendapatkan kolom terakhir menggunakan
i = -1
sumber