如何计算具有多个整数列的数据框中行的重复项

时间:2019-05-16 02:08:51

标签: pandas dataframe count duplicates

我有一个关于计算数据框中行重复数的问题。例如,我有以下数据框。

df1 = 
   0   1   2   3   4   5   6   7   8   9   10   11   12   13   14   15
0  2   2   2   2   2   2   2   2   2   2   2    2    2    2    2    2
1  3   3   3   3   3   3   3   3   3   3   3    3    3    3    3    3
2  1   1   1   1   1   1   1   1   1   1   1    1    1    1    1    1
3  1   1   1   1   1   1   1   1   1   1   1    1    1    1    1    1
4  1   1   1   1   1   1   1   1   1   1   1    1    1    1    1    1
5  1   1   1   1   1   1   1   1   1   1   1    1    1    1    1    1
6  2   2   2   2   2   2   2   2   2   2   2    2    2    2    2    2
7  2   2   2   2   2   2   2   2   2   2   2    2    2    2    2    2
8  2   2   2   2   2   2   2   2   2   2   2    2    2    2    2    2
9  3   3   3   3   3   3   3   3   3   3   3    3    3    3    3    3

有没有一种方法可以计算重复项并为我提供以下数据框?

df1_duplicates =
   0   1   2   3   4   5   6   7   8   9   10   11   12   13   14   15   Count
0  1   1   1   1   1   1   1   1   1   1   1    1    1    1    1    1    4
1  2   2   2   2   2   2   2   2   2   2   2    2    2    2    2    2    4
2  3   3   3   3   3   3   3   3   3   3   3    3    3    3    3    3    2

我尝试使用以下代码

df_duplicates = df1.groupby(df1.columns.tolist()).size().rename(columns={0:'count'})

它确实可以计数,但是输出数据帧变成了单列数据帧,如下所示。

df_I_dont_want_this =
                    0 
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 
1 1 1 1 1 1 1 1 1 1 1  1  1  1  1  1  4
2 2 2 2 2 2 2 2 2 2 2  2  2  2  2  2  4
3 3 3 3 3 3 3 3 3 3 3  3  3  3  3  3  2 

1 个答案:

答案 0 :(得分:0)

这就是您想要的

df.groupby(df.columns.tolist()).size().to_frame('count').reset_index()
Out[28]: 
   0  1  2  3  4  5  6  7  8  9  10  11  12  13  14  15  count
0  1  1  1  1  1  1  1  1  1  1   1   1   1   1   1   1      4
1  2  2  2  2  2  2  2  2  2  2   2   2   2   2   2   2      4
2  3  3  3  3  3  3  3  3  3  3   3   3   3   3   3   3      2