用值B计算值A出现的次数

时间:2017-12-15 14:20:59

标签: python pandas

我正在尝试计算Pandas数据框中的值与其他值一起出现的次数,并计算每行的次数。

这就是我的意思:

   a    t
0  a    2
1  b    4
2  c    2
3  g    2
4  b    3
5  a    2
6  b    3

假设我想计算a出现的次数以及数字2,我希望结果如下:

   a    t  freq
0  a    2  2
1  b    4  1
2  c    2  1
3  g    2  1
4  b    3  2
5  a    2  2
6  b    3  2

freq(频率)列此处指示列a中的值与列t中的值一起显示的次数。

请注意,例如考虑到我的数据帧大小,只计算a出现的次数会导致错误的频率。

有没有办法在Python中实现这个目标?

1 个答案:

答案 0 :(得分:3)

transformsizecount

一起使用
df['freq'] = df.groupby(['a', 't'])['a'].transform('size')
#alternative solution
#df['freq'] = df.groupby(['a', 't'])['a'].transform('count')
print (df)
   a  t  freq
0  a  2     2
1  b  4     1
2  c  2     1
3  g  2     1
4  b  3     2
5  a  2     2
6  b  3     2