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

如何将每日总额作为单独列匹配添加至持仓DataFrame?

给DF1添加对应日期的总计列解决方案

方法1:使用merge左连接(推荐新手)

这是最直观的方式,通过日期字段将两个DataFrame左连接,保留DF1的所有行并填充对应日期的总计值:

import pandas as pd

# 示例数据(替换成你的真实数据)
df1 = pd.DataFrame({
    'Date': ['2024-01-01', '2024-01-01', '2024-01-02', '2024-01-02'],
    'InstrumentID': ['AAPL', 'MSFT', 'GOOG', 'AMZN'],
    'DollarAmt': [1000, 2000, 1500, 3000]
})

df2 = pd.DataFrame({
    'Date': ['2024-01-01', '2024-01-02'],
    'Total': [3000, 4500]
})

# 左连接合并,确保DF1所有行保留
df1_with_total = df1.merge(df2, on='Date', how='left')

执行后df1_with_total就会包含每行对应的日期总计值,和DF2的Total完全一致。

方法2:使用map映射

先把DF2转成日期到总计的字典,再通过map给DF1赋值:

# 将DF2转为日期-总计的字典
total_map = df2.set_index('Date')['Total'].to_dict()

# 给DF1新增Total列
df1['Total'] = df1['Date'].map(total_map)

关键注意事项

  • 确保两个DataFrame的Date字段格式完全一致:如果一个是字符串、一个是datetime类型,会导致匹配失败。可以用以下代码统一格式:
    df1['Date'] = pd.to_datetime(df1['Date'])
    df2['Date'] = pd.to_datetime(df2['Date'])
    

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.21 14:02:13