Python 由另一列分组的二进制目标变量的值_计数比率
我创建了一个玩具数据集,试图找出df.groupby是如何工作的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 = 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
这就是我需要的。将函数的输出更改为数值对我来说没什么大不了的。我忘了说我想把结果用图表表示出来,但我想出来了。谢谢你,这很短很甜。