Jawaban:
>>> 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.
.iloc
belum ada di sana saat itu. Pada tahun 2016, jawaban yang benar adalah milik Jeff (lagipula dia adalah pandas
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, gunakan iloc
sebagai gantinya: s = df.ix[:,0]
. Lihat posting ini untuk perbandingan iloc
dan ix
.
Dari v0.11 +, ... gunakan df.iloc
.
In [7]: df.iloc[:,0]
Out[7]:
0 1
1 2
2 3
3 4
Name: x, dtype: int64
Anda bisa mendapatkan kolom pertama sebagai Seri dengan kode berikut:
x[x.columns[0]]
x[x.columns[x.columns.size-1]]
Bukankah ini cara yang paling sederhana?
Menurut nama kolom:
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
) bukan generik - bagaimana jika nama kolom berisi spasi? Bagaimana jika nama kolom bertepatan dengan DataFrame
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
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]]
di mana i
posisi / nomor kolom (mulai dari 0 ).
Begitu, i = 0
untuk kolom pertama.
Anda juga bisa mendapatkan kolom terakhir menggunakan i = -1
df.set_index('x').y