python - 计算值 A 与值 B 同时出现的次数

标签 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中实现这一点?

最佳答案

使用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

关于python - 计算值 A 与值 B 同时出现的次数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47834225/

相关文章:

python - 没有排序结果的 Pandas 值计数

Python:将图像和数据帧写入同一个 excel 文件

python - 更改 Holoviews 热图分类刻度标签

Python argparse 多个元变量名称

python - 将函数应用于分组 Pandas 数据框中的列并将输出作为新列返回

python - 删除python中小于某个值的行

python-3.x - 用 NaN 替换 Pandas DataFrame 中的空列表值

python - 如何使用 pandas 和 matplotlib 生成离散数据以传递到等高线图?

python - 每当在python中按下一个键时如何调用一个函数

python - 如何使用 python 3.7 (Spyder) 计算数据读数的移动平均值?