什么是Pandas中的SQL计数

时间:2017-07-30 13:44:07

标签: python pandas

在sql中,选择a。*,count(a.id)作为表格中的N.a.name中的一个组会给我一个新列“N' N'按照规范按照我的组计数

然而,在熊猫中,如果我尝试df [' name']。value_counts(),我会得到计数但不是原始数据框中的列。

有没有办法在单个步骤/语句中将计数作为原始数据框中的列?

1 个答案:

答案 0 :(得分:3)

您似乎需要groupby + transform函数size

df = pd.DataFrame({'A':list('abcdef'),
                   'B':[4,5,4,5,5,4],
                   'C':[7,8,9,4,2,3],
                   'D':[1,3,5,7,1,0],
                   'E':[5,3,6,9,2,4],
                   'name':list('aaabcc')})

print (df)
   A  B  C  D  E name
0  a  4  7  1  5    a
1  b  5  8  3  3    a
2  c  4  9  5  6    a
3  d  5  4  7  9    b
4  e  5  2  1  2    c
5  f  4  3  0  4    c

df['new'] = df.groupby('name')['name'].transform('size')
print (df)
   A  B  C  D  E name  new
0  a  4  7  1  5    a    3
1  b  5  8  3  3    a    3
2  c  4  9  5  6    a    3
3  d  5  4  7  9    b    1
4  e  5  2  1  2    c    2
5  f  4  3  0  4    c    2

What is the difference between size and count in pandas?