从数据框创建数据透视表

时间:2020-05-12 20:07:53

标签: pandas python-3.8

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

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]

我不确定如何解决此问题?

2 个答案:

答案 0 :(得分:1)

类似的方法可能有用-

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]

答案 1 :(得分:1)

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]
相关问题