2013-03-12 130 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

相关问题