2017-03-09 34 views
0

パンダのgroupbyの仕組みとその使い方を正しく理解できないようです。誰かが私が間違ってやっていることや私の問題に近づく方法を説明してもらえますか? 異なる列に基づいていくつかのデータを抽出したいと思います。例を参照してください。パンダの実装groupby - インデックス作成とスライス

Number Name Param1 Param2 Param3 
0  1 A  0 0.179264 0.565864 
1  2 A  1 0.374258 0.985103 
2  1 C  2 0.799988 0.855600 
3  3 B  3 0.237612 0.290065 
4  3 C  4 0.195463 0.232030 
5  2 C  5 0.611886 0.712429 
6  4 A  6 0.178465 0.056347 
7  1 B  7 0.018789 0.393464 
8  5 B  8 0.549566 0.457160 
9  4 B  9 0.149801 0.590501 
10  4 C  10 0.112857 0.327013 
11  3 A  11 0.902660 0.670725 
12  2 B  12 0.474427 0.104224 
13  5 C  13 0.691259 0.620992 
14  5 A  14 0.043179 0.028890 

次に、2つのループを含む操作を行いたいと思います。基本的に、この例では、各数値を参照する各Nameのパラメータ(配列として、問題はありません)[Param1、Param2、Param3]を出力します。

ので、望ましい結果は次のようになります。 ナンバー1:[[0, 0.179264, 0.565864],[2, 0.799988, 0.855600],[7, 0.018789, 0.393464]] 番号2:[[1, 0.374258, 0.985103],[5, 0.611886, 0.712429],[12, 0.474427, 0.104224]]など(その後、私はそれらをプロットし、標識のために「名前」を使用したい

は、これはコードです:

for n in example.groupby('Number'): 
    for name in example['Name']: 
     params = np.array(example.loc[n['Name']==name,['Param1','Param2','Param3']]) 
     print 'Group:', n 
     print 'Params:\n', params 

しかし、私はGROUPBYオブジェクトのデータフレームのインデックスを使用できないように思える。このコードはTypeError: tuple indices must be integers, not strを生成します。 私はそれを理解しようとすることで、今で作られているが、あると思われる複数のエラーがあるかもしれませんgの正しい索引付けとスライスroupbyオブジェクトが主な問題です。

答えて

1

私はよく理解してかどうかわからないけど、loop in groupsを試してみてください。

for i, n in df.groupby('Number'): 
    print (i) 
    print (n[['Param1','Param2','Param3']]) 
    #for output as nested lists 
    #print (n[['Param1','Param2','Param3']].values.tolist()) 

1 
    Param1 Param2 Param3 
0  0 0.179264 0.565864 
2  2 0.799988 0.855600 
7  7 0.018789 0.393464 
2 
    Param1 Param2 Param3 
1  1 0.374258 0.985103 
5  5 0.611886 0.712429 
12  12 0.474427 0.104224 
3 
    Param1 Param2 Param3 
3  3 0.237612 0.290065 
4  4 0.195463 0.232030 
11  11 0.902660 0.670725 
4 
    Param1 Param2 Param3 
6  6 0.178465 0.056347 
9  9 0.149801 0.590501 
10  10 0.112857 0.327013 
5 
    Param1 Param2 Param3 
8  8 0.549566 0.457160 
13  13 0.691259 0.620992 
14  14 0.043179 0.028890 
関連する問題