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

如何用字典映射列对索引匹配的Pandas DataFrame逐元素相乘?

简洁实现方法

可以通过构造与df1列结构匹配的映射DataFrame,再直接逐元素相乘,代码非常简洁:

import pandas as pd

# 构造示例数据
df1 = pd.DataFrame(
    {'ABC': [1,4], 'DEF': [2,7], 'XYZ': [3,2]},
    index=['01/01/2004', '05/01/2004']
)
df2 = pd.DataFrame(
    {'Echo': [5,-1], 'Epsilon': [10,-2]},
    index=['01/01/2004', '05/01/2004']
)
d = {'ABC': 'Echo', 'DEF': 'Echo', 'XYZ': 'Epsilon'}

# 核心代码
match_df = pd.DataFrame({col: df2[d[col]] for col in df1.columns})
result = df1 * match_df

print(result)

运行后得到的结果与预期一致:

IndexABCDEFXYZ
01/01/200451030
05/01/2004-4-7-4

一行式简化写法

利用apply直接遍历df1列并完成对应相乘:

result = df1.apply(lambda col: col * df2[d[col.name]], axis=0)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.25 07:06:31