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

如何基于另一DataFrame的THIS_info字段为目标DataFrame新增列?

基于共同字段为DataFrame新增列的实现方法

你可以通过以下两种常用的Pandas方法实现需求:

方法1:使用merge进行左连接合并

merge是Pandas中专门用于数据合并的函数,通过指定共同字段THIS_info进行左连接,能保留第一个DataFrame的所有行并匹配对应this_algo值:

import pandas as pd

# 初始化两个DataFrame
df1 = pd.DataFrame({
    'some_info': ['abd', 'def', 'www', 'qqq', 'wws', '2222'],
    'THIS_info': ['set_1', 'set_1', 'set_1', 'set_2', 'set_2', 'set_3']
})

df2 = pd.DataFrame({
    'THIS_info': ['set_1', 'set_2', 'set_3'],
    'this_algo': ['algo_1', 'algo_2', 'algo_2']
})

# 左连接合并,保留df1所有行
result_df = df1.merge(df2, on='THIS_info', how='left')
print(result_df)

执行后得到的结果:

some_info THIS_info this_algo
0       abd     set_1    algo_1
1       def     set_1    algo_1
2       www     set_1    algo_1
3       qqq     set_2    algo_2
4       wws     set_2    algo_2
5      2222     set_3    algo_2

方法2:使用map进行字典映射

如果第二个DataFrame仅作为映射表使用,可以将其转换为字典,再通过map方法快速赋值:

# 将df2转换为映射字典
algo_mapping = df2.set_index('THIS_info')['this_algo'].to_dict()

# 为df1新增this_algo列
df1['this_algo'] = df1['THIS_info'].map(algo_mapping)
print(df1)

这种方法效率较高,尤其适合映射表数据量较小的场景,最终结果与方法1一致。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.29 14:17:22