0

写真が3回提示され、各提示について測定が行われたデータセットがあります。将来的には、各写真の値を正規化し(3回の繰り返しに基づいて3つの数字に基づく)、カテゴリでANOVAを実行したいと思います:最初のプレゼンテーション、2番目のプレゼンテーション、3番目のプレゼンテーション(すべての写真)。ただし、それに到達する前に、データに簡単にアクセスできるように、画像の名前と繰り返しの数に基づいてデータを再編成する必要があります。

次のような pandas データフレームを変換したいと思います。

viola.jpg          0.61  1.968234      1
vlasta.jpg         0.79  1.836025      2
zelmira.jpg        0.76  1.955471      3
viola.jpg          0.71  1.968234      4
vlasta.jpg         0.89  1.836025      5
zelmira.jpg        0.76  1.955471      6
viola.jpg          0.31  1.968234      7
vlasta.jpg         0.79  1.836025      8
zelmira.jpg        0.26  1.955471      9

次のようなものに:

viola.jpg   1   0.61    1.968234        1
            2   0.71    1.968234        4
            3   0.31    1.968234        7
vlasta.jpg  1   0.79    1.836025        2
            2   0.89    1.836025        5
            3   0.79    1.836025        8
zelmira.jpg 1   0.76    1.955471        3
            2   0.76    1.955471        6
            3   0.26    1.955471        9

私は df.groupby()、df.pivot、および df.stack() をさまざまな組み合わせで使用しようとしましたが、明らかに、私が探しているようなことを漠然としていません-何かアイデアはありますか?

4

1 に答える 1

2

DataFrame がある場合は、フィールドをインデックスとしてdf設定して並べ替えることができます。これにより、必要に応じてデータが並べ替えられます。image namemeasurement id

df2 = df.set_index("pic_name", "meas_id").sort()

groupbyデータのグループに対して集計を実行する場合やpivot、個々のグループに対して特定の処理を行う必要がある場合に適しています。 stackデータの再形成にunstack役立ちますが、インデックスを列に、またはその逆に移動します。

于 2013-04-09T15:46:45.427 に答える