熊猫试验重复索引

时间:2013-04-09 15:31:44

标签: indexing dataframe pandas

我有一个数据集,其中三次显示图片,并为每个演示文稿进行测量。前瞻性地我想对每张图片的值进行标准化(基于3次重复 - 所以3个数字)并对类别进行ANOVA:第一次演示,第二次演示,第三次演示(适用于所有图片)。然而,在我做到这一点之前,我必须重新组织我的数据,以便我可以根据图片名称和重复次数轻松访问数据。

我想转换一个如下所示的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(),但显然他们甚至没有模糊地做我想要的东西 - 任何想法?

1 个答案:

答案 0 :(得分:2)

如果您有DataFrame df,则可以将image namemeasurement id字段设置为索引然后排序。这将按照您的要求订购数据。

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

groupbypivot适用于对数据组执行聚合,或者当您需要针对各个组执行特定操作时。 stackunstack帮助重塑数据,但将索引移至cols,反之亦然。