我试过:
x=pandas.DataFrame(...) s = x.take([0], axis=1)
s得到的是 DataFrame,而不是 Series。
s
您可以通过以下代码获得作为 Series 的第一列:
x[x.columns[0]]
>>> 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'> >>>
===========================================================================
更新
如果你是在2017年6月之后读到这篇文章,ix已经在0.20.2版本的大熊猫中被弃用了,所以不要使用它。使用 loc或 iloc代替。请参阅对此问题的评论和其他答案。
ix
loc
iloc
从 v0.11 + ,... 使用 df.iloc。
df.iloc
In [7]: df.iloc[:,0] Out[7]: 0 1 1 2 2 3 3 4 Name: x, dtype: int64
这不是最简单的方法吗?
列名:
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
当你想从一个 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]]
其中 i是列的位置/编号(从 0开始)。
i
因此,i = 0用于第一列。
i = 0
还可以使用 i = -1获取最后一列
i = -1