2013-03-12 129 views

回答

79
>>> 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'> 
>>> 
+0

如何獲得列'y'作爲系列和列'x'作爲索引? – LWZ 2014-01-06 02:01:29

+4

'df.set_index('x')。y' – herrfz 2014-01-10 23:44:30

+3

值得添加.iloc替代方法(如Jeff進一步在本頁面中提出的),因爲在名稱數字列存在的情況下它不會含糊不清。 – 2016-04-16 14:04:43

59

您可以通過下面的代碼獲得第一列作爲一個系列:

x[x.columns[0]] 
+0

我怎樣才能像最後一列? – Polly 2016-09-22 15:18:46

+1

x [x.columns [-1]] – user48956 2016-10-31 22:24:38

+0

其他人也很好,但這個看起來更直觀。 – pshep123 2016-12-09 01:20:59

34
in 0.11 

In [7]: df.iloc[:,0] 
Out[7]: 
0 1 
1 2 
2 3 
3 4 
Name: x, dtype: int64 
+0

這是與新版本兼容的版本,也是舊版本的兼容版本。而且自開發團隊正式推廣這種方法以來,效率可能最高。 – gaborous 2018-02-15 23:50:08

7

這不是最簡單的方法是什麼?

按列名:

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 
+5

在這種特殊情況下,您知道第一列(「x」)的名稱,但問題意味着什麼:「我如何訪問第一列,無需注意其名稱」。此外,像這樣訪問列('df.x')不是通用的 - 如果列名包含空格會怎樣?如果該列的名稱與DataFrame的屬性名稱一致,該怎麼辦?使用'__getitem__'訪問列是比較普遍的(例如:'df [「x」]')。 – ponadto 2017-03-10 06:58:05

+0

如果列的標題包含例如在它的空間。 – 2018-01-24 12:54:12

相關問題