パンダの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オブジェクトが主な問題です。