You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

基于Pandas JOIN实现DataFrame版本控制与差异对比

问题:用Pandas JOIN操作对比DataFrame版本变更

我正在对比两个DataFrame以检查二者间的变更情况,这是版本控制脚本的一部分,为此我编写了简化示例来寻找解决方案:

import pandas as pd

data = {'ID':  ['1', '2', '3', '4'],
        'Date':  ['23-01-2023', '01-12-1995', '03-07-2013', '05-09-2013'],
        'Time':  ['01:45:08', '02:15:21', '23:57:14', '03:57:15'],
        'Path':  ['//server/test/File1.txt', '//server/test/File2.txt', '//server/test/File3.txt', '//server/test/File4.txt'],
        }
data2 = {'ID':  ['1', '2', '3', '4'],
        'Date':  ['23-01-2023', '03-07-2013', '01-12-1995', '21-11-1991'],
        'Time':  ['01:45:08', '23:57:14', '02:17:21', '03:18:31'],
        'Path':  ['//server/test/File1.txt', '//server/test/File3.txt', '//server/test/File2.txt', '//server/test/File5.txt'],
        }

df = pd.DataFrame(data)
df2 = pd.DataFrame(data2)

生成的两个DataFrame如下:

DataFrame 1

| ID | Date       | Time      | Path                       |
 |  1 | 23-01-2023 | 01:45:08  | //server/test/File1.txt    |
 |  2 | 01-12-1995 | 02:15:21  | //server/test/File2.txt    |
 |  3 | 03-07-2013 | 23:57:14  | //server/test/File3.txt    |
 |  4 | 05-09-2013 | 03:57:15  | //server/test/File4.txt    |

DataFrame 2

| ID | Date       | Time      | Path                       |
 |  1 | 23-01-2023 | 01:45:08  | //server/test/File1.txt    |
 |  2 | 03-07-2013 | 23:57:14  | //server/test/File3.txt    |
 |  3 | 01-12-1995 | 02:17:21  | //server/test/File2.txt    |
 |  4 | 21-11-1991 | 03:18:31  | //server/test/File5.txt    |

以第一个DataFrame为基准,变更情况如下:

  • ID为4的文件已删除
  • ID为2的文件已修改
  • 新增了一个文件(DataFrame2中的ID4)

最终希望得到如下输出:

| ID | Date       | Time      | Path                       |  Status  |
 |  1 | 23-01-2023 | 01:45:08  | //server/test/File1.txt    |     -    |
 |  2 | 01-12-1995 | 02:15:21  | //server/test/File2.txt    |  UPDATED |
 |  3 | 03-07-2013 | 23:57:14  | //server/test/File3.txt    |     -    |
 |  4 | 05-09-2013 | 03:57:15  | //server/test/File4.txt    |  DELETED |
 |  5 | 21-11-1991 | 03:18:31  | //server/test/File5.txt    |   ADDED  |

能否仅通过Pandas的JOIN操作实现该需求?


内容的提问来源于stack exchange,提问作者Ralk

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.02 02:25:47