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

如何用Pandas对比两个时刻的设备告警DataFrame并找出新增告警

用Pandas的merge方法找出新增告警

直接用merge结合indicator参数就能快速实现需求,步骤如下:

假设你已经将两个时刻的告警数据分别存入df_old(告警时刻0)和df_new(告警时刻1)两个DataFrame:

  1. 执行外连接并标记行来源
merged_df = pd.merge(df_old, df_new, on=['Sequence', 'AlarmId', 'Level', 'Description'], how='outer', indicator=True)

这里选择所有字段作为连接键,确保只有完全匹配的告警才会被判定为重复;how='outer'保留两个DataFrame的所有行;indicator=True会新增一列_merge,标记每行来自df_old(left_only)、df_new(right_only)还是两者共有(both)。

  1. 筛选出新增告警
new_alerts = merged_df[merged_df['_merge'] == 'right_only'].drop('_merge', axis=1)

right_only对应的就是仅在df_new中出现的行,也就是新增的告警,最后用drop去掉标记列即可得到目标结果。

简化方案(如果Sequence是唯一标识)

如果你确定Sequence是每条告警的唯一ID(不会重复),可以仅用Sequence作为连接键,代码会更简洁:

merged_df = pd.merge(df_old, df_new, on='Sequence', how='outer', indicator=True)
new_alerts = merged_df[merged_df['_merge'] == 'right_only'].drop('_merge', axis=1)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.14 14:50:29