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

如何从现有数据集中提取唯一节点及对应属性值

实现方案

实现思路

  • 分别提取Source、Target两侧的节点属性,统一列名
  • 给Target节点补充空的Label_S字段,对齐表结构
  • 合并两张表后按节点去重,优先保留Source侧的完整属性记录

完整代码

import pandas as pd
# 如pandas版本较低不支持pd.NA,可导入numpy用np.nan替代

# 提取Source侧节点属性
source_df = df[['Source', 'Label_S', 'Prop_1', 'Mer_1']].rename(columns={
    'Source': 'Node',
    'Prop_1': 'Property',
    'Mer_1': 'Merchandising'
}).drop_duplicates(subset='Node', keep='first')

# 提取Target侧节点属性
target_df = df[['Target', 'Prop_2', 'Mer_2']].rename(columns={
    'Target': 'Node',
    'Prop_2': 'Property',
    'Mer_2': 'Merchandising'
}).drop_duplicates(subset='Node', keep='first')
# Target节点无Label_S属性,补空值
target_df['Label_S'] = pd.NA

# 合并表并按节点去重,优先保留Source侧带Label_S的记录
result = pd.concat([source_df, target_df], ignore_index=True)\
    .drop_duplicates(subset='Node', keep='first')\
    .reset_index(drop=True)

# 调整列顺序为需求格式
result = result[['Node', 'Label_S', 'Property', 'Merchandising']]

# 输出查看结果
print(result)

输出说明

运行后得到的result表结构和你给出的预期输出完全一致,其中仅作为Source出现的节点会保留Label_S值,仅作为Target出现的节点Label_S字段为空。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.26 17:15:04