pandas按多列groupby分组后结果用;连接,结果不符合预期
原数据:
data = {'月':[1,1,2,2,2,3,1,3,4],
'name':['a','a','b','b','a','c','c','c','c'],
'list':['纸','笔','书','纸','笔','书','书','笔','笔']}
df = pd.DataFrame(data)
月 name list
0 1 a 纸
1 1 a 笔
2 2 b 书
3 2 b 纸
4 2 a 笔
5 3 c 书
6 1 c 书
7 3 c 笔
8 4 c 笔
执行语句:
需求:按月和name分组,后将list内容用;连接
df1 = df.groupby(['月','name']).agg({'list':lambdax: ';'.join(str(x))}).reset_index()
月 name list
0 1 a 0; ; ; ; ;纸;\n;1; ; ; ; ;笔;\n;N;a;m;e;:; ;l;i;...
1 1 c 6; ; ; ; ;书;\n;N;a;m;e;:; ;l;i;s;t;,; ;d;t;y;p...
2 2 a 4; ; ; ; ;笔;\n;N;a;m;e;:; ;l;i;s;t;,; ;d;t;y;p...
3 2 b 2; ; ; ; ;书;\n;3; ; ; ; ;纸;\n;N;a;m;e;:; ;l;i;...
4 3 c 5; ; ; ; ;书;\n;7; ; ; ; ;笔;\n;N;a;m;e;:; ;l;i;...
5 4 c 8; ; ; ; ;笔;\n;N;a;m;e;:; ;l;i;s;t;,; ;d;t;y;p...
结果list和预期相差很远
正确需求结果:
月 name list
0 1 a 纸;笔
1 1 c 书
2 2 b 书;纸
3 2 a 笔
4 3 c 书;笔
5 4 c 笔