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

Python&Pandas按两个CSV的user匹配字段新增指定列问题求助

问题原因

你当前使用的pd.concat()是用于沿行/列直接拼接数据的方法,无法实现按共同字段关联匹配的需求,这类表关联场景应该使用Pandas提供的merge()方法,逻辑等价于数据库的JOIN操作。

调整后可直接运行的代码

import pandas as pd

# 读取文件时加skipinitialspace=True,自动去掉字段/值前后的多余空格,避免因为CSV里的空格导致匹配失败
df_roster = pd.read_csv('roster.csv', skipinitialspace=True)
df_assignment = pd.read_csv('assignment.csv', skipinitialspace=True)

# 以user为共同键,左关联保留assignment的所有行,匹配roster的对应字段
df_merged = pd.merge(
    left=df_assignment,
    right=df_roster[['user', 'first_name', 'last_name', 'user_id']],
    on='user',
    how='left'
)

# 输出结果到新CSV,index=False表示不写入Pandas自动生成的行序号
df_merged.to_csv('merged_result.csv', index=False)

参数说明

  • on='user':指定两个表用user字段作为关联匹配的唯一键
  • how='left':保留左表(也就是assignment表)的所有行,哪怕右表没有对应匹配项也不会丢失原assignment的数据,符合你在assignment基础上新增字段的需求
  • 右表指定了只取['user', 'first_name', 'last_name', 'user_id']四个字段,避免roster里的其他无关字段被带入结果

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.06 19:57:03