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

如何使用Pandas将列表的列表与TSV文件按ID合并?

当然可以用Pandas直接完成这个合并操作,而且步骤很清晰,我帮你梳理一下实现过程:

步骤1:准备工作,导入依赖库

首先我们需要导入pandas和ast(用来处理TSV里的字符串格式列表):

import pandas as pd
import ast

步骤2:将mylist转换为DataFrame

把你的嵌套列表转换成Pandas的DataFrame,方便后续合并操作:

mylist = [[9, ["nuts", "fruits"]], [12, ["france", "italy", "rome", "paris"]], [18, ["cat", "dog", "parrot", "rabbit", "cow"]], [19, ["ebay", "wish"]]]
# 给DataFrame指定列名,方便后续匹配
df_list = pd.DataFrame(mylist, columns=["ID", "Original_List"])

步骤3:读取并处理TSV文件

读取TSV的时候,注意Category列里的内容是字符串形式的列表,我们需要把它转换成实际的Python列表类型,否则合并后还是字符串格式:

# 读取TSV文件,你原来的参数已经很合适了
df_input = pd.read_csv("myinput.tsv", header=0, delimiter="\t", quoting=3)
# 用ast.literal_eval把字符串转成真实的列表
df_input["Category"] = df_input["Category"].apply(ast.literal_eval)

步骤4:按ID合并两个DataFrame

使用merge方法,基于ID列完成匹配合并,这里用how="left"可以保证保留mylist里的所有ID(如果TSV里有缺失ID的话也不会丢失原数据):

merged_df = pd.merge(df_list, df_input, on="ID", how="left")

步骤5:转换为目标嵌套列表格式

最后把合并后的DataFrame转换成你需要的嵌套列表即可:

my_output = merged_df.values.tolist()
# 打印结果看看是不是你想要的
print(my_output)

执行完这些代码后,得到的my_output就和你预期的结果完全一致啦!

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.14 08:00:54