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

使用Pandas按saleforce_id分组并获取非NaN字段值的实现方案

合并Salesforce变更记录解决方案

Pandas 实现方案

如果使用Python的pandas库处理,核心逻辑是先统一空值格式,再分组取非空值:

  1. 先将表中空字符串转换为pandas可识别的空值类型,避免空字符串被判定为有效值
import pandas as pd

# 替换空字符串/None为pandas标准空值
df = df.replace(["", None], pd.NA)
  1. 按salesforce_id分组,取每列第一个非空值,若需要取最新更新的有效值,将first()替换为last()即可
# 分组合并,保留所有字段的非空值
merged_df = df.groupby("salesforce_id", as_index=False).first()

SQL 实现方案

如果在数据库中处理,使用聚合函数忽略空值的特性实现:

SELECT
    salesforce_id,
    MAX(field_a) AS field_a,
    MAX(field_b) AS field_b,
    -- 其余需要保留的字段依次使用MAX聚合即可
    MAX(field_n) AS field_n
FROM salesforce_change_log
GROUP BY salesforce_id

如果需要按变更时间取最新的非空值,可以结合窗口函数实现:

WITH ranked_changes AS (
    SELECT 
        *,
        ROW_NUMBER() OVER (PARTITION BY salesforce_id ORDER BY change_time DESC) AS rn
    FROM salesforce_change_log
)
SELECT * FROM ranked_changes WHERE rn = 1

注:如果你的数据表中同一字段同一ID存在多个不同的非空值,以上方案会优先取第一个/最新的有效值,可根据业务需要调整排序逻辑。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.25 22:06:03