groupby,sum和count到一个表

时间:2016-09-02 15:24:42

标签: python pandas numpy

我有一个数据框

df=pd.DataFrame({"A":np.random.randint(1,10,9),"B":np.random.randint(1,10,9),"C":list('abbcacded')})

   A  B  C
0  9  6  a
1  2  2  b
2  1  9  b
3  8  2  c
4  7  6  a
5  3  5  c
6  1  3  d
7  9  9  e
8  3  4  d

我想在下面获得分组结果(使用键=" C"列),并且故意删除行c d和e。

   number   A_sum   B_sum
a   2        16       15
b   2        3        11

这是2row * 3列数据帧。分组键是C列 列"数字"表示每个字母(a和b)的计数。 A_sum和B_sum表示对C列中字母的分组。

我想我们应该使用方法groupby但是如何获得这个数据汇总表?

2 个答案:

答案 0 :(得分:7)

您可以使用单个devise-token-auth

执行此操作
groupby

答案 1 :(得分:2)

一种选择是分别计算每个组的大小和总和,然后按索引加入它们:

df.groupby("C")['A'].agg({"number": 'size'}).join(df.groupby('C').sum())

    number  A   B
# C         
# a     2   11  8
# b     2   14  12
# c     2   8   5
# d     2   11  12
# e     1   7   2

你也可以df.groupby('C').agg(["sum", "size"])提供一个额外的重复大小列,但如果你对它很好,它也应该有用。