从数据框创建透视列表

Created pivoted list from dataframe

我有一个大数据框,如下所示:

Mo  Gr  Data

9   A   36
9   A   26
4   A   16
4   A   145
9   B   173
7   A   41
4   A   13

我想旋转它得到这样的列表:

Mo  Gr  List
4   A   [16, 145, 13]
7   A   [41]
9   A   [36, 26]
9   B   [173]

我不知道如何解决这个问题?

像这样的东西可能有用 -

df.groupby(['Mo', 'Gr'])['Data'].apply(lambda x: x.tolist()).reset_index()
     Mo Gr           Data
 0   4  A      [16, 145, 13]
 1   7  A               [41]
 2   9  A           [36, 26]
 3   9  B              [173]

agg/list

df.groupby(['Mo', 'Gr'], as_index=False).Data.agg(list)

   Mo Gr           Data
0   4  A  [16, 145, 13]
1   7  A           [41]
2   9  A       [36, 26]
3   9  B          [173]

常规dict

results = {}
for m, g, d in df.itertuples(index=False):
    results.setdefault((m, g), []).append(d)

pd.DataFrame([(m, g, d) for (m, g), d in results.items()], columns=df.columns)

   Mo Gr           Data
0   9  A       [36, 26]
1   4  A  [16, 145, 13]
2   9  B          [173]
3   7  A           [41]