【发布时间】:2020-08-07 11:10:43
【问题描述】:
我有 2 个交易数据框:
左:
code debit credit reference payment date
1 112133 6,31,964.51 0 MH20181000022319 18.09.2018
2 112133 6,29,161.51 0 MH20181000022340 12.09.2018
3 112133 2,78,288.51 0 MH20181000022341 27.10.2018
4 112133 0 3,13,599.51 MH20181000022502 13.11.2018
5 112133 3,16,683.00 0 MH20181000022503 22.07.2018
6 112133 3,27,332.00 0 MH20181000022504 02.12.2018
正确:-
code DR CR reference trans date
1 112133 7,37,964.51 0 345 24.09.2018
2 112133 0 6,31,964.51 456 20.09.2018
3 112133 1,23,434.00 0 567 13.05.2018
4 112133 3,13,599.51 0 420 09.03.2018
5 112133 0 3,16,683.00 890 19.01.2018
6 112133 3,27,332.00 0 123 19.01.2018
我想使用pandas merge / merge_asof on 执行join操作:
左栏 = ['借方', '付款日期']
右栏 = ['credit', 'trans date']
问题是付款日期并非每次都完全匹配,因此我需要考虑从左行到右行的给定日期的 + / - 3 天的变化。
因此,结果应该理想地匹配左 1 行和右 2 行。
我开始参考merge_asof & merge_ordered,请建议?
那会很有帮助。
【问题讨论】:
-
我提到了TimeDelta,它解决了我50%的问题,因为merge_asof只支持单列连接,请建议如何在merge_asof中使用多列?
标签: python pandas dataframe join merge