首页 > 解决方案 > 聚合 Pandas 数据框中的列数据

问题描述

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

col1 = ['a','b','c','a','c','a','b','c','a']
col2 = [1,1,0,1,1,0,1,1,0]
df2 = pd.DataFrame(zip(col1,col2),columns=['name','count'])

    name    count
0   a       1
1   b       1
2   c       0
3   a       1
4   c       1
5   a       0
6   b       1
7   c       1
8   a       0

我正在尝试计算“名称”列中每个元素对应的 0 和 1 的数量。所以预期的输出看起来像:

name  zero_count  one_count

a     2           2
b     0           2
c     1           2

到目前为止,我尝试了许多场景,其中一个看起来很有希望的是:

ser = df2.groupby(['name','count']).size().to_frame().reset_index()
ser
    name    count  0
0   a       0      2
1   a       1      2
2   b       1      2
3   c       0      1
4   c       1      2

我还可以尝试解决哪些问题?

标签: pythonpandasdataframe

解决方案


尝试crosstab

pd.crosstab(df2['name'], df2['count'])
Out[40]: 
count  0  1
name       
a      2  2
b      0  2
c      1  2

推荐阅读