我有一个数据框,并希望按几列和不同级别的值对其进行分组。此外,我想将按结果分组到原始数据帧。
这是原始数据帧:
AAA BBB CCC
x1 y1 yes
x1 y1 yes
x1 y1 no
x1 y2 no
x2 y2 yes
x2 y2 no
这就是我要的:
AAA BBB CCC Yes No
x1 y1 yes 2 1
x1 y1 yes 2 1
x1 y1 no 2 1
x1 y2 no 0 1
x2 y2 yes 1 1
x2 y2 no 1 1
这里的想法是,我想按AAA和BBB分组,并在每个分组的CCC中计数是/否。然后,我想将计数值添加到2个新列中,是和否。
提前致谢!
一种方法是:
AAA
和分组BBB
value_counts()
的CCC
每个组yes
和组成no
)堆叠到列中counts = (df.groupby(['AAA', 'BBB'])['CCC']
.value_counts()
.unstack()
.fillna(0)
.astype(int))
counts.columns = counts.columns.str.title()
pd.merge(df, counts, left_on=['AAA', 'BBB'], right_index=True)
AAA BBB CCC No Yes
0 x1 y1 yes 1 2
1 x1 y1 yes 1 2
2 x1 y1 no 1 2
3 x1 y2 no 1 0
4 x2 y2 yes 1 1
5 x2 y2 no 1 1
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句