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, ixtelah ditinggalkan dalam panda 0.20.2, jadi jangan gunakan itu. Gunakan locatau ilocsebagai gantinya. Lihat komentar dan jawaban lain untuk pertanyaan ini.
.ilocbelum ada di sana saat itu. Pada tahun 2016, jawaban yang benar adalah milik Jeff (lagipula dia adalah pandasTuhan, 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 ...
ixsudah tidak digunakan lagi dalam versi 0.20.
ixtidak boleh digunakan lagi, gunakan ilocsebagai gantinya: s = df.ix[:,0]. Lihat posting ini untuk perbandingan ilocdan 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 DataFramenama 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 iposisi / 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