熊猫计数唯一行

qwe*_*lpc 6 python counter python-2.7 pandas

我有一个熊猫数据框,类似于:

ColA ColB
1    1
1    1
1    1
1    2
1    2
2    1
3    2
Run Code Online (Sandbox Code Playgroud)

我想要一个与Counter具有相同功能的输出。我需要知道每行出现多少次(所有列都相同)。

在这种情况下,正确的输出将是:

ColA ColB Count
1    1    3
1    2    2
2    1    1
3    2    1
Run Code Online (Sandbox Code Playgroud)

我已经尝试过某种方式了:

df.groupby(['ColA','ColB']).ColA.count()
Run Code Online (Sandbox Code Playgroud)

但这给我一些难看的输出,我在格式化时遇到麻烦

edd*_*eek 14

我只需要计算唯一行并使用如下DataFrame.drop_duplicates替代方法:

len(df[['ColA', 'ColB']].drop_duplicates())
Run Code Online (Sandbox Code Playgroud)

我的数据比len(df.groupby(['ColA', 'ColB'])).


jez*_*ael 9

你可以用sizereset_index

print df.groupby(['ColA','ColB']).size().reset_index(name='Count')
   ColA  ColB  Count
0     1     1      3
1     1     2      2
2     2     1      1
3     3     2      1
Run Code Online (Sandbox Code Playgroud)