【发布时间】:2019-11-18 02:50:59
【问题描述】:
我的数据框
df1:
Index Amount 01.01.2018 08:00:00 23.25 01.01.2018 08:10:00 25.50 01.01.2018 08:20:00 26.30 01.01.2018 08:30:00 25.00 01.01.2018 08:40:00 20.00 01.01.2018 08:50:00 21.20 01.01.2018 09:00:00 21.20 01.01.2018 09:10:00 31.20
df2:
Index Operation 01.01.2018 -5.00 01.01.2018 10.00
我想在我的 df1 中跟踪来自 df2 的操作。
所以基本上检查 df2 中的操作,并找到该事件在 df1 中发生的位置。 例如。有-5.00,这个事件发生在这里:
01.01.2018 08:30:00 25.00 01.01.2018 08:40:00 20.00
我的预期输出:
df:
Index Amount Operation_T/F Amount_Operation 01.01.2018 08:00:00 23.25 0 0 01.01.2018 08:10:00 25.50 0 0 01.01.2018 08:20:00 26.30 0 0 01.01.2018 08:30:00 25.00 0 0 01.01.2018 08:40:00 20.00 1 -5.0 01.01.2018 08:50:00 21.20 0 0 01.01.2018 09:00:00 21.20 0 0 01.01.2018 09:10:00 31.20 1 10.0
白天可以重复操作这一事实不是问题。 当然玩一些 for 和 if 可能是一个解决方案,但我正在尝试在 python 中实现一个干净的代码,我正在考虑一种更好的方法。
在编写 True 或 False 操作值、if in row 或 row + 1 时遇到了一些问题。
我解决这个问题的想法是为两行创建 bin,然后跟踪该 bin 中是否发生了操作事件。你怎么看?
提前谢谢:)
【问题讨论】:
-
您能否更好地解释一下
I'd like to track operations from df2 in my df1的含义? -
我想在 df1 的金额栏中找到 Operation -5.00 (df2)。它发生在从索引 01.01.2018 08:30:00 传递到索引 01.01.2018 08:40:00 的 df1 中。抱歉没有解释,我会编辑我的问题。
-
我猜日期很重要?所以必须有之前的 groupby 操作?
-
您应该检查以前的值 - 当前值。根据结果写入 Amount_Operation 列。
-
如果
df1和df2之间的天数不同,我们是否应该忽略天数并在差异匹配时合并?