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

如何使用Pandas函数基于另一DataFrame更新列值?

用Pandas基于另一DataFrame更新指定列内容

构造示例数据

先创建对应DataFrame:

import pandas as pd

# 表1
df1 = pd.DataFrame({
    'Crops': ['Potato', 'Cabbage', 'Tomato', 'Potato'],
    'Entry Time': ['2022-03-01', '2022-03-02', '2022-03-03', '2022-03-04'],
    'Duration': [0, 0, 0, 0]
})

# 表2
df2 = pd.DataFrame({
    'Crops': ['Potato', 'Cabbage', 'Tomato'],
    'Duration': [30, 20, 25]
})

方法1:使用map()函数

把表2转换成以Crops为键、Duration为值的字典,通过表1的Crops列映射获取对应值,直接覆盖原Duration列:

# 构建Crops到Duration的映射字典
duration_map = df2.set_index('Crops')['Duration'].to_dict()

# 更新df1的Duration列
df1['Duration'] = df1['Crops'].map(duration_map)

方法2:使用merge()函数

通过左连接关联两个表,用表2的Duration值替换表1对应列,最后整理数据:

# 左连接两个表,保留df1所有行
merged_df = df1.merge(df2, on='Crops', how='left', suffixes=('_old', ''))

# 替换Duration列
df1['Duration'] = merged_df['Duration']

执行任意一种方法后,df1的Duration列会按表2的值更新,最终结果如下:

CropsEntry TimeDuration
Potato2022-03-0130
Cabbage2022-03-0220
Tomato2022-03-0325
Potato2022-03-0430

内容的提问来源于stack exchange,提问作者zhe yi soo

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.23 06:36:35