回答:
>>> 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
pandas 0.20.2で非推奨になっているため、使用しないでください。loc
またはiloc
代わりに使用します。この質問に対するコメントやその他の回答を参照してください。
.iloc
は、当時はまだそこにいませんでした。2016年、正解はジェフ(pandas
正直なところ、彼は神なので、あなたに気をつけてください;-))です。APIの変更による回答の更新に関するSOのポリシーはわかりません。この回答の投票数に正直に驚いていますが、それは人々にとって
次のコードにより、最初の列をシリーズとして取得できます。
x[x.columns[0]]
x[x.columns[x.columns.size-1]]
これが最も簡単な方法ではありませんか?
列名別:
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
)のような列へのアクセスは一般的ではありません-列名にスペースが含まれている場合はどうなりますか?列の名前がDataFrame
-s属性名と一致する場合はどうなりますか?を使用して列にアクセスする方が一般的です__getitem__
(つまり、次のようになります:) df["x"]
。
これは、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.set_index('x').y