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

如何按共同列连接行数不同的两个CSV表并保留全部行?

如何合并两个存在非重叠用户的CSV表(全外连接)

你要做的是全外连接(Full Outer Join)——保留两个表里的所有用户,没有对应数据的位置留空。下面给几种不同场景下的实用实现方式:


方法1:用Python Pandas实现(最灵活,适合批量处理)

如果会写点Python代码,用Pandas是最省心的:

import pandas as pd

# 读取两个CSV文件,注意根据你的实际文件分隔符调整参数
# 表1是空格分隔,表2是逗号+空格分隔
df_twitter = pd.read_csv('表1.csv', sep='\s+')
df_linkedin = pd.read_csv('表2.csv', sep=',\s*')

# 按Name列做全外连接
merged_df = pd.merge(df_twitter, df_linkedin, on='Name', how='outer')

# 把空值替换成空白字符串(可选,让结果更符合你的期望)
merged_df = merged_df.fillna('')

# 保存结果到新CSV,用制表符分隔让格式更整齐
merged_df.to_csv('合并结果.csv', index=False, sep='\t')

方法2:用Excel实现(适合非编程用户)

不用写代码,用Excel的函数也能搞定:

  • 把两个表分别导入Excel的两个工作表(比如Sheet1存Twitter数据,Sheet2存LinkedIn数据)
  • 新建一个工作表,在A1、B1、C1分别输入Name、Twitter、LinkedIn
  • 在A2单元格输入公式 =UNIQUE(VSTACK(Sheet1!A:A, Sheet2!A:A)),回车后自动生成所有不重复的用户名
  • 在B2单元格输入公式 =XLOOKUP(A2, Sheet1!A:A, Sheet1!B:B, ""),下拉填充所有行,得到对应用户的Twitter链接
  • 在C2单元格输入公式 =XLOOKUP(A2, Sheet2!A:A, Sheet2!B:B, ""),下拉填充,得到对应用户的LinkedIn链接
  • 最后把结果复制,右键粘贴为「值」,再保存成CSV文件即可

方法3:用命令行工具csvkit实现(适合终端爱好者)

先通过pip安装csvkit:pip install csvkit
然后执行以下命令:

# 先把空格分隔的表1转换成逗号分隔(和表2统一格式)
csvformat -d ' ' -D ',' 表1.csv > 表1_逗号版.csv

# 按Name列做全外连接,输出结果
csvjoin --outer -c Name 表1_逗号版.csv 表2.csv > 合并结果.csv

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.12 14:22:23