Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/363.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 由另一列分组的二进制目标变量的值_计数比率_Python_Python 3.x_Pandas_Pandas Groupby - Fatal编程技术网

Python 由另一列分组的二进制目标变量的值_计数比率

Python 由另一列分组的二进制目标变量的值_计数比率,python,python-3.x,pandas,pandas-groupby,Python,Python 3.x,Pandas,Pandas Groupby,我创建了一个玩具数据集,试图找出df.groupby是如何工作的 df = pd.DataFrame({"A": [1,2,3,1,2,3,1,2,3,1,2,3], "B": ['m','f','m','m','f','m','f','f','f','m','f','m'], 'target': [0,0,0,1,1,0,1,0,0,1,1,0]}) 我的“target”变量只有两个级别,0和1。我可以得到每个变量'B'的总数,如下所示: b = df.g

我创建了一个玩具数据集,试图找出df.groupby是如何工作的

df = pd.DataFrame({"A": [1,2,3,1,2,3,1,2,3,1,2,3], "B": ['m','f','m','m','f','m','f','f','f','m','f','m'],
                  'target': [0,0,0,1,1,0,1,0,0,1,1,0]})
我的“target”变量只有两个级别,0和1。我可以得到每个变量
'B'
的总数,如下所示:

b = df.groupby('B').target.value_counts()
    B  target
f  0         3
   1         3
m  0         4
   1         2
Name: target, dtype: int64
输出如下所示:

b = df.groupby('B').target.value_counts()
    B  target
f  0         3
   1         3
m  0         4
   1         2
Name: target, dtype: int64
但是
'B'
是绝对的。我想做的是,对于每个级别的
'B'
,得到比率

(目标值计数=1)/(目标值计数=0)

比如说,

  • 对于B=f,我需要3/3
  • 对于B=m,我需要2/4

您可以使用
.apply()

您可以使用:

输出:

    B
f   1.00
m   0.50
dtype: float64
b

这就是我需要的。将函数的输出更改为数值对我来说没什么大不了的。我忘了说我想把结果用图表表示出来,但我想出来了。谢谢你,这很短很甜。