猿问

在计数列中添加第二列后如何在数据框中获取唯一行

我正在使用以下数据框。


df = pd.DataFrame({'A' : ['aa','bb','aa','dd','ff','dd','aa','bb','dd','cc'], 'B' : ['xx','xx','yy','zz','xx','xx','yy','zz','zz','yy']})

它创建了一个这样的表


    A   B

0   aa  xx

1   bb  xx

2   aa  yy

3   dd  zz

4   ff  xx

5   dd  xx

6   aa  yy

7   bb  zz

8   dd  zz

9   cc  yy

我可以添加第三列


df.groupby(['A','B']).size()

这给出了下表:


A   B 

aa  xx    1

    yy    2

bb  xx    1

    zz    1

cc  yy    1

dd  xx    1

    zz    2

ff  xx    1

dtype: int64

我想获得以下输出:


A      Count

aa     3   

bb     2   

cc     1  

dd     3    

ff     1  

我无法获得以下输出,我也尝试过


df.groupby(['A','B']).B.agg('count').to_frame('Count').reset_index()

但它无法获得输出。任何帮助深表感谢。


九州编程
浏览 166回答 2
2回答

慕盖茨4494581

您采取了太多步骤来使事情变得更简单。无需先按“A”和“B”分组,然后再执行操作。只需按“A”分组并计数。df.groupby(['A']).count()

慕莱坞森

改变这个:df.groupby(['A','B']).size()对此:df.groupby(['A']).size()要不就:df['A'].value_counts()因此:import pandas as pddf = pd.DataFrame({'A' : ['aa','bb','aa','dd','ff','dd','aa','bb','dd','cc'], 'B' : ['xx','xx','yy','zz','xx','xx','yy','zz','zz','yy']})print(df.groupby(['A']).size())输出:Aaa    3bb    2cc    1dd    3ff    1dtype: int64
随时随地看视频慕课网APP

相关分类

Python
我要回答