【发布时间】:2019-07-08 14:57:57
【问题描述】:
我想对表中的每条记录进行基于两个分类列的累积计数。
在下表中,我想获取 cum_count 列,该列是根据列 industry 和 deal_status 计算得出的。这个想法是,对于每条记录,计算同一行业以前赢得的交易数量。
例如,表的最后一条记录有一个 cum_count = 3,因为只有 3 个交易与 deal_status = 为 industry 赢得 = x以前见过。
Pandas' GroupBy.cumcount function 对单个变量执行此操作...
对于我所描述的情况,我如何才能做到这一点?
pd.DataFrame({'time': [1, 2, 3, 4, 5, 6, 7],
'company' : ["ciaA", "ciaB", "ciaA", "ciaC", "ciaA", "ciaD", "ciaE"],
'industry' : ["x", "y", "x", "x", "x", "y", "x"],
'deal_status' : ["won", "lost", "won", "won", "lost", "won", "lost"],
'cum_count' : [0, 0, 1, 2, 3, 0, 3]})
time company industry deal_status cum_count
1 ciaA x won 0
2 ciaB y lost 0
3 ciaA x won 1
4 ciaC x won 2
5 ciaA x lost 3
6 ciaD y won 0
7 ciaE x lost 3
【问题讨论】:
标签: python pandas jupyter-notebook