如何解决合并两个数据框并建立带有日期更新的“最新”行
我的目标是合并两个数据帧,prev_df
和 new_df
。行在 statement_uuid
上匹配的地方:
注意:为了比较匹配的statement_uuid
,应忽略以下列:[statement_uuid,date_created,date_confirmed,latest]
更高级别的目标是生成一个数据框,该数据框记录非排除列值中的差异 statement_uuid
-wise。
示例prev_df
:
| | statement_uuid | foo | bar | date_created | date_confirmed | latest |
|---:|:-----------------|:------|------:|:--------------------|:--------------------|:---------|
| 0 | s1 | a | 42 | 2021-01-01 00:00:00 | 2021-01-10 00:00:00 | True |
| 1 | s2 | b | 42 | 2021-01-01 00:00:00 | 2021-01-10 00:00:00 | True |
| 2 | s3 | c | 42 | 2021-01-10 00:00:00 | 2021-01-10 00:00:00 | True |
示例new_df
:
| | statement_uuid | foo | bar | date_created | date_confirmed | latest |
|---:|:-----------------|:------|------:|:--------------------|:--------------------|:---------|
| 0 | s2 | X | 42 | 2021-01-20 00:00:00 | 2021-01-20 00:00:00 | None |
| 1 | s3 | c | 42 | 2021-01-20 00:00:00 | 2021-01-20 00:00:00 | None |
| 2 | s4 | Y | 42 | 2021-01-20 00:00:00 | 2021-01-20 00:00:00 | None |
- 此数据框中不存在第
s1
行 -
s2
值已从b
-->X
- 第
s4
行是全新的
foo
的 最后,期望的输出 df:
| | statement_uuid | foo | bar | date_created | date_confirmed | latest |
|---:|:-----------------|:------|------:|:--------------------|:--------------------|:---------|
| 0 | s1 | a | 42 | 2021-01-01 00:00:00 | 2021-01-10 00:00:00 | True |
| 1 | s2 | b | 42 | 2021-01-01 00:00:00 | 2021-01-10 00:00:00 | False |
| 2 | s2 | X | 42 | 2021-01-20 00:00:00 | 2021-01-20 00:00:00 | True |
| 3 | s3 | c | 42 | 2021-01-10 00:00:00 | 2021-01-20 00:00:00 | True |
| 4 | s4 | Y | 42 | 2021-01-20 00:00:00 | 2021-01-20 00:00:00 | True |
-
statement_uuid=s2
现在有 两行- 以前的
foo=b
值,现在是latest=False
-
foo=X
的新值,现在是latest=True
- 以前的
-
date_confirmed
已针对新行和已确认行进行了更新,但对于不再是最新行的s2
进行了不
更新:已经找到了一个可行的解决方案,但仍然感谢对改进或其他方法的任何见解。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。