【发布时间】:2022-11-11 11:17:59
【问题描述】:
df1 = [[aa, '21/01/2022', ''], [aa, '22/01/2022', '22/01/2022'],
[aa, '22/01/2022', ''], [aa, '22/01/2022', ''],
[bb, '25/01/2022', '25/01/2022'],[bb, '26/01/2022', ''],
[bb, '26/01/2022', ''],[cc, '21/01/2022', ''],
[cc, '21/01/2022', '22/01/2022'], [cc, '21/01/2022', '']]
df = pd.DataFrame(df1, columns =['userid', 'Created', 'Signed_up'])
我有上面的数据框,我想做的是在之前与另一个计划“注册”之后计算“创建”计划的数量。 意思是,数据框中的每一行都是用户生成的计划,我想计算每个用户在之前注册后生成的计划数量,考虑到每个用户可以在注册的计划中拥有,这简化了任务有点。
我的假设是使用 groupby() 和 cumsum() 或 cumcount() 的组合,但我遇到的问题是合并以前 notna() 'Signed_up' 列的条件。
期望的输出:
df2 = [[aa, '21/01/2022', '', ''], [aa, '22/01/2022', '22/01/2022', ''],
[aa, '22/01/2022', '', '1'], [aa, '22/01/2022', '', '2'],
[bb, '25/01/2022', '25/01/2022', ''],[bb, '26/01/2022', '', '1'],
[bb, '26/01/2022', '', '2'],[cc, '21/01/2022', '', ''],
[cc, '21/01/2022', '22/01/2022', ''], [cc, '21/01/2022', '', '1']]
df_3 = pd.DataFrame(df2, columns =['userid', 'Created', 'Signed_up', 'count'])
任何帮助和建议表示赞赏!提前感谢您的任何答案。
【问题讨论】:
标签: python group-by counting cumsum