2016-04-24 6 views
0

NON数値索引付けを使用して2次元行列を作成する方法はありますか?さらに重要なのは、数値以外のインデックスを使用して値を取得/設定することです。多次元行列(リスト)で非数値索引付け

私は考えスニペットが理解

>>>m13=mat[A,three] 
    >>> m13 
    >>> 3 

ように取得/設定することができ、次いで

mat= 
     one two three 
    A 1 2  3 
    B 4 5  6 

等2Dマトリックスを有するといいます。私は「パンダ」を使うことを考えていましたが、それを理解できませんでした。

答えて

3

あなたはlocを使用することができます。

import pandas as pd 

mat = pd.DataFrame({'three': {'A': 3, 'B': 6}, 
        'two': {'A': 2, 'B': 5}, 
        'one': {'A': 1, 'B': 4}}, 
        columns = ['one','two','three']) 

print mat 
    one two three 
A 1 2  3 
B 4 5  6 

#GET 
print mat.loc['A', 'three'] 
3 

#SET 
mat.loc['A', 'three'] = 10 
print mat 
    one two three 
A 1 2  10 
B 4 5  6 

EDIT:あなたはあまりにもnumpy arrayからDataFrameを作成することができます

:答えるため

print arr 
[[1 2 3] 
[4 5 6]] 

mat = pd.DataFrame(arr, index=['A','B'], columns=['one','two','three']) 
    one two three 
A 1 2  3 
B 4 5  6 
+0

おかげで、あなたはどのように 'マット' を作成したのを示すことができました? – Rebin

+0

確かに、答えが編集されています。 – jezrael

+0

あなたの迅速な解決に感謝します。 – Rebin