NLR*_*NLR 0 python pandas pandas-groupby
我需要按列的子集进行分组,并计算其值的不同组合的数量。但是,还有其他列可能有也可能没有不同的值,我想以某种方式在输出中保留这些信息。这是一个例子:
gb1 gb2 text1 text2
bebop skeletor blue fisher
bebop skeletor blue wright
rocksteady beast_man orange haldane
rocksteady beast_man orange haldane
tokka kobra_khan green lande
tokka kobra_khan red arnold
Run Code Online (Sandbox Code Playgroud)
我只想gb1按和进行分组gb2。
这是我需要的:
gb1 gb2 count text1 text2
bebop skeletor 2 blue fisher, wright
rocksteady beast_man 2 orange haldane
tokka kobra_khan 2 green, red lande, arnold
Run Code Online (Sandbox Code Playgroud)
除了处理text1和text2列之外,我已经完成了所有工作。
提前致谢。
您可以检查
s=df.assign(count=1).groupby(['gb1','gb2']).agg({'count':'sum','text1':lambda x : ','.join(set(x)),'text2':lambda x : ','.join(set(x))}).reset_index()
s
gb1 gb2 count text1 text2
0 bebop skeletor 2 blue wright,fisher
1 rocksteady beast_man 2 orange haldane
2 tokka kobra_khan 2 green,red lande,arnold
Run Code Online (Sandbox Code Playgroud)