根据两列将数据框细分并拆分为多个数据框

时间:2019-08-13 01:12:26

标签: python pandas subset pandas-groupby

我有一个庞大的数据框,如下所示:(我刚刚将代表的数据框样本放到只有10行的位置。但是,即使10000行,数据模式也将保持不变。)

  Input:

     df =

             unique_id  target  value  response scan  plan  filter flag

                CTA15   21.00   19.0      25.7   T1  TROY       1  f1a
                CTA15   21.00   22.0      22.9   T2  TROY       1  f1a
                CTA15   21.00   28.0      36.0   T2  TROY       0  f1b
                CTA15   21.00   18.0       7.0   T3  TROY       1   f2
                CTA15   21.00   22.4      32.4   T3  TROY       1   be
                AC007    1.80    2.0      28.9   E1  TROY       0   be
                 BGD1    0.89    1.6      14.6  TT1  VICT       1   f1a
                 GHB   56.80   51.0      11.0  YU1   VICT       1   f1b
                 GHB   56.80   54.0      84.9  YU1   VICT       1   f2
                 GHB   56.80    4.7      48.7  YU6   VICT       1   be

我正在寻找的是基于两列“计划”和“标志”,基于这些列中的元素组将数据帧分为多个数据帧。我需要它,因为基于此,我将提供这些数据帧以进行其他处理。

因此,我希望拆分后的数据帧看起来像这样:

  Output:

        df1 =

             unique_id  target  value  response scan  plan  filter flag

                CTA15   21.00   19.0      25.7   T1  TROY       1  f1a
                CTA15   21.00   22.0      22.9   T2  TROY       1  f1a

       df2 =

             unique_id  target  value  response scan  plan  filter flag

                CTA15   21.00   28.0      36.0   T2  TROY       0  f1b

       df3 =

             unique_id  target  value  response scan  plan  filter flag

                CTA15   21.00   18.0       7.0   T3  TROY       1   f2

      df4 =

             unique_id  target  value  response scan  plan  filter flag

                CTA15   21.00   22.4      32.4   T3  TROY       1   be
                AC007    1.80    2.0      28.9   E1  TROY       0   be


        df5 =

             unique_id  target  value  response scan  plan  filter flag

                 BGD1    0.89    1.6      14.6  TT1  VICT       1   f1a

        df6 =

             unique_id  target  value  response scan  plan  filter flag

                 GHB   56.80   51.0      11.0  YU1   VICT       1   f1b
       df7 =

             unique_id  target  value  response scan  plan  filter flag

                  GHB   56.80   54.0      84.9  YU1   VICT       1   f2

       df8 =

             unique_id  target  value  response scan  plan  filter flag

                 GHB   56.80    4.7      48.7  YU6   VICT       1   be

我尝试根据这两个组创建字典:

      grCols = ['plan', 'flag']

      mydict = dict(tuple(df.groupby(grCols)))

      dfnew = pd.DataFrame().append(mydict, ignore_index=True)

不幸的是,我无法以所需的格式恢复数据帧。实际上,我将键(组)作为不需要的列。我想保持相同的数据帧,但根据我上面提到的两列划分为子组。

任何帮助将不胜感激!

1 个答案:

答案 0 :(得分:1)

尝试使用ValueError: cannot reshape array of size 47040000 into shape (28,28,1,1)

groupby