通过大熊猫列对比率进行分组

时间:2017-03-05 23:21:06

标签: python pandas

我有一个如下数据集:

    i_id    q_id    week_month
0   1       NaN      27-7
1   2       NaN      27-7
2   3       NaN      27-7
3   4       1.0      27-7
4   5       2.0      27-7

我希望基本上按变量Week_month进行分组,并获得该组的相应比率(q_id / i_id_)。就像上面一样,我们会有像

这样的东西
week_month   rate
27-7         2/5

因为q_id只有两个有效的id而i_id有5.所以rate被定义为q_id / i_id。

我可以轻松地在sql中执行此操作,但我不想为此使用Pandsql。任何熊猫的方式?

1 个答案:

答案 0 :(得分:1)

如果我理解正确,您可以将applycount一起使用,因为count将获得每个组中每个列的非NA值的总数。

df.groupby('week_month').apply(lambda x: x.q_id.count()/x.i_id.count())

<强>演示

>>> df.groupby('week_month').apply(lambda x: x.q_id.count()/x.i_id.count())

week_month
27-7    0.4
dtype: float64

除了非NA / NA的有效性之外,这当然不会对每个组的实际内容做出任何假设。