我有一个很大的数据框,如下所示:
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]
我不确定如何解决此问题?
答案 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]