【发布时间】:2022-01-23 17:38:15
【问题描述】:
我遇到了一个问题,我已经完成了所有 groupby 操作并得到了如下所示的结果数据帧,但问题出现在最后一次计算一个附加列的操作中
当前数据框:
code industry category count duration
2 Retail Mobile 4 7
3 Retail Tab 2 33
3 Health Mobile 5 103
2 Food TV 1 88
问题:想要一个额外的列 operation 计算特定 code 列条目的行业“零售”计数比率
例如:代码 2 有 2 个 industry 条目零售和食品,因此 operation 列应该具有值 4/(4+1) = 0.8 和代码3 类似,如下所示
O/P:
code industry category count duration operation
2 Retail Mobile 4 7 0.8
3 Retail Tab 2 33 -
3 Health Mobile 5 103 2/7 = 0.285
2 Food TV 1 88 -
这里也有帮助,如果我只做 groupby,我会错过 category 和 duration 的信息还有什么更好的方式来代表 output df 可以有多个行业和操作仅限于只是retail
【问题讨论】:
-
df.groupby("code")["count"].transform(lambda x: x / x.sum())?您可以通过将code作为索引并在找到sum之后使用索引对齐来对其进行更多矢量化。 -
@user3483203 能否请您详细说明,您的方法不涉及
industry这是一个重要因素
标签: python-3.x pandas dataframe pandas-groupby