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

数字数组列转字符串:DataFrame映射选字典还是连接?

方案选择与实现

直接选字典映射就行,原因很简单——DF2只有20行,这种方式更简洁高效,逻辑也直观,没必要搞复杂的连接操作。

字典映射的具体实现

  1. 先把DF2转成Id对应Teamname的字典:
team_dict = df2.set_index('Id')['Teamname'].to_dict()
  1. 给DF1新增Teamnames列,把每个TeamId列表里的ID换成对应名称,再用逗号拼起来:
df1['Teamnames'] = df1['TeamId'].apply(lambda x: ','.join([team_dict[id] for id in x]))

跑这两行代码就能直接得到你要的结果DF。

用DataFrame连接的话(不推荐这个场景)

要是硬用连接,步骤会繁琐很多:得先把DF1里的TeamId列表拆成多行,和DF2关联后再重新分组拼接,具体步骤是:

  1. 把TeamId列表展开成单行一个ID:
df_exploded = df1.explode('TeamId')
  1. 和DF2做连接匹配:
df_merged = df_exploded.merge(df2, left_on='TeamId', right_on='Id', how='left')
  1. 按用户名和原TeamId列表分组,把Teamname用逗号拼起来:
df_result = df_merged.groupby(['Username', 'TeamId'])['Teamname'].apply(','.join).reset_index()

这种方法绕了好几个弯,对于只有20行的DF2来说完全没必要。

两者对比

  • 字典映射:代码少、逻辑直接,不用改原数据结构,而且字典查找速度快,效率更高。
  • DataFrame连接:步骤多、代码冗余,适合大型数据集或者复杂关联场景,但在这个小数据集场景下纯属画蛇添足。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.01 10:33:19