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

如何用txt中的人员ID从CSV提取对应行并修正代码语法错误?

问题解决与代码修正

错误原因分析

  • 第4行wanted_ids = df1[]是无效语法,DataFrame不能用空方括号访问内容,必须指定列或索引。
  • 未处理file1.txt中方括号包裹的ID,直接读取会导致ID包含[或]符号,无法匹配file2中的ID。
  • 最终保存时header=False会丢弃file2的列名,不符合需求。

修正后的完整代码

import pandas as pd

# 读取file1.txt,处理方括号并提取ID列表
df1 = pd.read_csv("file1.txt", sep=',', header=None)
# 清洗每个ID,去掉首尾的方括号和空格,统一类型
wanted_ids = df1.iloc[:, 0].str.strip('[] ').astype(str)  # 根据file2中ID的类型调整,比如改为int

# 读取file2.csv
df2 = pd.read_csv("file2.csv")

# 替换为file2中实际存储人员ID的列名,比如'id'、'user_id'等
id_column_name = 'id'
# 筛选出ID匹配的行
wanted_rows = df2[df2[id_column_name].astype(str).isin(wanted_ids)]

# 保存结果:保留列名,不保存索引列
wanted_rows.to_csv("file3.csv", index=False, header=True)

关键说明

清洗ID:使用str.strip('[] ')去除每个ID首尾的方括号和空格,确保ID格式和file2中的一致;astype(str)统一类型,避免因类型不匹配(比如数字和字符串)导致的匹配失败。
筛选行:用isin()方法替代直接loc,更适合基于列表的行筛选,必须将id_column_name替换为file2.csv中实际存储人员ID的列名。
保存设置:index=False避免保存额外的索引列,header=True保留file2的原始列名,完全符合需求。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.15 16:55:30