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

PowerBI中生成Final Naiming列:按Contract ID合并唯一Detailed Name

实现合同条款合并生成Final Naiming列的解决方案

Python Pandas 实现

如果用Python处理表格数据,Pandas是最便捷的工具,以下是具体代码:

import pandas as pd

# 示例数据(实际可通过pd.read_csv/pd.read_excel读取你的数据源)
df = pd.DataFrame({
    'Contract ID': ['Contract 1', 'Contract 1', 'Contract 1', 'Contract 2', 'Contract 3', 'Contract 3', 'Contract 3', 'Contract 3'],
    'Detailed Name': ['1.1', '1.1', '1.2', '1.1', '1.1', '1.2', '1.3', '1.4']
})

# 1. 按合同ID分组,提取每组唯一的条款并拼接成字符串
unique_clauses = df.groupby('Contract ID')['Detailed Name'].unique().apply(lambda clauses: ', '.join(clauses))
# 2. 生成符合格式的Final Naiming
final_naming_map = unique_clauses.apply(lambda x: f"{unique_clauses.name} ({x})")
# 3. 将结果映射回原数据集的每一行
df['Final Naiming'] = df['Contract ID'].map(final_naming_map)

# 查看结果
print(df)

代码逻辑说明:

  • 分组后用unique()去重每个合同下的条款,避免重复拼接
  • 用join()把去重后的条款拼接成逗号分隔的字符串
  • 通过map()将每个合同对应的命名结果批量填充到原数据的每一行

SQL 实现(以MySQL为例)

如果你的数据存储在数据库中,可以用SQL直接查询生成目标列:

SELECT 
    t1.`Contract ID`,
    t1.`Detailed Name`,
    CONCAT(
        t1.`Contract ID`,
        ' (',
        GROUP_CONCAT(DISTINCT t2.`Detailed Name` SEPARATOR ', '),
        ')'
    ) AS `Final Naiming`
FROM 
    your_table t1
INNER JOIN 
    your_table t2 ON t1.`Contract ID` = t2.`Contract ID`
GROUP BY 
    t1.`Contract ID`, t1.`Detailed Name`;

SQL逻辑说明:

  • 自连接表获取同一合同下的所有条款记录
  • GROUP_CONCAT(DISTINCT ...)去重并拼接条款字符串
  • CONCAT()组合合同ID和拼接后的条款,生成目标格式

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.05 08:22:36