在python中汇总数据框和行数

时间:2016-04-01 08:11:34

标签: python pandas dataframe rollup

我仍处于python的学习阶段,想知道我们如何汇总数据并计算名为 count

的列中的重复数据行

数据帧结构如下

Col1| Value
A   |  1
B   |  1
A   |  1
B   |  1
C   |  3
C   |  3
C   |  3
C   |  3

我的结果应如下

Col1|Value|Count
 A  |  1  | 2
 B  |  1  | 2
 C  |  3  | 4

3 个答案:

答案 0 :(得分:4)

>>> df2 = df.groupby(['Col1', 'Value']).size().reset_index()
>>> df2.columns = ['Col1', 'Value', 'Count']
>>> df2
  Col1  Value  Count
0    A      1      2
1    B      1      2
2    C      3      4

答案 1 :(得分:3)

Roman Pekar的正确答案对于这种情况是正确的。但是,在尝试为您的问题文本中所述的一般情况编写解决方案之后,我看到了它,而不仅仅是具有特定列名称的示例。因此,对于一般情况,请考虑:

df.groupby([df[c] for c in df.columns]).size().reset_index().rename(columns={0: 'Count'})

例如:

import pandas as pd

df = pd.DataFrame({'Col1': ['a', 'a', 'a', 'b', 'c'], 'Value': [1, 2, 1, 3, 2]})

>>> df.groupby([df[c] for c in df.columns]).size().reset_index().rename(columns={0: 'Count'})
    Col1    Value   Count
0   a   1   2
1   a   2   1
2   b   3   1
3   c   2   1

答案 2 :(得分:0)

您也可以尝试:

df.groupby('Col1')['Value'].value_counts().reset_index(name='Count')