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

+4

'df.set_index( 'x').y' – herrfz

+3

名前のための数字の列がある場合に曖昧ではないので、.ilocの代わりに(このページの下でJeffが提案したように)追加する価値があります。 –

59

は、次のコードでシリーズとして最初の列を取得することができます。

x[x.columns[0]] 
+0

私はそのような最後の列を得ることができる方法:列名によって

? – Polly

+1

x [x.columns [-1]] – user48956

+0

他はうまく動作しますが、これはより直感的です。 – pshep123

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

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

+0

また、列のヘッダーにその中のスペース。 –

関連する問題