我有一个看起来像这样的数据框
根据用户操作(可能有四种操作),我想在给定时间点累积用户的金额。A 类和 B 类行为代表用户收入,C 类和 D 类行为代表用户支出。
换句话说,我想要这样的结果
用户 1 首先执行 action_A 并得到 10 作为结果。然后 action_B 给我们 10 + 5 = 15。Action_C 代表金钱损失,给 use 15 - 5 = 10。最后,action_D 与 C 相同,我们得到 10 - 15 = -5。
我怎样才能用熊猫实现这个?我尝试使用自定义聚合
expanding().apply(agg_func)
但没有得到任何令人满意的结果。
编辑:数据框创建代码
ids = [1,1,1,1,2,2]
dates = ['2019-03-07 13:54', '2019-03-07 16:07', '2019-03-10 19:20', '2019-03-10 19:20', '2016-03-07 14:47', '2016-03-09 11:07']
amounts = [10., 5., 5., 15., 2., 4.]
actions = ['action_A', 'action_B', 'action_C', 'action_D', 'action_A', 'action_B']
result = [10, 15, 10, -5, 2, 6]
pd.DataFrame({'user_id': ids, 'start_date': dates, 'amount': amounts, 'action': actions, 'result': result}, index=range(6))
慕侠2389804
ibeautiful
相关分类