计算 pandas DataFrame 中每列行的重复项

May*_*y B 4 python duplicates dataframe pandas

我有一张很长的桌子,如下所示:

    A    B    C    D    .......
0   au   br   gt   uy
1   cd   gq   gt   uy
2   fg   br   gt   ml
3   kl   br   gt   wx
Run Code Online (Sandbox Code Playgroud)

............

我想计算并打印每列的重复项,例如:

A   0    
B   2     
C   3     
D   1    
Run Code Online (Sandbox Code Playgroud)

我只发现计算一列的重复项:

df.duplicated(['B']).sum()
Run Code Online (Sandbox Code Playgroud)

我是否必须编写所有列(大约 30 列)或者是否可以使用 pandas 中的某些内容?我已经尝试过这个但它不起作用:

df.duplicated(df.loc[:,:]).sum()
Run Code Online (Sandbox Code Playgroud)

jez*_*ael 6

减去 DataFrame 的长度nunique

df = len(df) - df.nunique()
print (df)
A    0
B    2
C    3
D    1
dtype: int64
Run Code Online (Sandbox Code Playgroud)

或者使用applywithduplicated分别获取每列的布尔掩码和值sum的计数True

df = df.apply(lambda x: x.duplicated()).sum()
print (df)
A    0
B    2
C    3
D    1
dtype: int64
Run Code Online (Sandbox Code Playgroud)