如何在Power Query中合并两个数据集并整理为目标表格格式
解决方案
方法一:使用Python Pandas
假设两个数据集分别为df1(含Column DS1)和df2(含Column DS2),按以下步骤处理:
- 基于
Column A和Column B执行全外连接:
import pandas as pd merged_df = pd.merge(df1, df2, on=['Column A', 'Column B'], how='outer', suffixes=('_df1', '_df2'))
suffixes会给两个表的重复列(如Column C、Column D)添加后缀,方便后续区分。
- 合并重复列,保留非空值:
# 合并Column C,优先取df1的非空值,空值用df2补充 merged_df['Column C'] = merged_df['Column C_df1'].combine_first(merged_df['Column C_df2']) # 同理处理Column D merged_df['Column D'] = merged_df['Column D_df1'].combine_first(merged_df['Column D_df2'])
- 清理冗余列并调整目标列顺序:
# 若DS列因合并出现后缀,先重命名(比如df2的DS2列可能被命名为Column DS2_df2) merged_df = merged_df.rename(columns={'Column DS2_df2': 'Column DS2'}) # 提取最终需要的列 final_df = merged_df[['Column A', 'Column B', 'Column DS1', 'Column DS2', 'Column C', 'Column D']]
方法二:使用SQL
如果数据存储在数据库中,用FULL OUTER JOIN配合COALESCE函数实现:
SELECT COALESCE(t1."Column A", t2."Column A") AS "Column A", COALESCE(t1."Column B", t2."Column B") AS "Column B", t1."Column DS1", t2."Column DS2", COALESCE(t1."Column C", t2."Column C") AS "Column C", COALESCE(t1."Column D", t2."Column D") AS "Column D" FROM table1 t1 FULL OUTER JOIN table2 t2 ON t1."Column A" = t2."Column A" AND t1."Column B" = t2."Column B"
COALESCE会返回参数中第一个非空值,自动补全全外连接产生的空值,同时合并重复列。
内容的提问来源于stack exchange,提问作者d365b
相关产品推荐
相关产品推荐

