我有一个数据框
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但是如何获得这个数据汇总表?
答案 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"])
提供一个额外的重复大小列,但如果你对它很好,它也应该有用。