Python pandas 如何将列与另一个DataFrame的匹配值相乘计算汇总价格
实现方案
你要的乘加汇总本质是矩阵乘法运算,直接用pandas内置的向量化点积方法即可实现,全程无需循环,3000行200列的规模运算效率极高。
完整实现代码
import pandas as pd # 1. 提取参与计算的列:直接取df2的行索引匹配df1的列,无需手动录入190个列名 calc_cols = df2.index.tolist() # 2. 执行矩阵乘法,直接得到所有day的汇总结果 # 自动对齐df1的列和df2的行,逐元素相乘后求和,完全匹配计算规则 price_result = df1[calc_cols].dot(df2) # 3. 给结果列加上_price后缀 price_result.columns = [f"{col}_price" for col in price_result.columns] # 4. 合并结果到原df1 df1 = pd.concat([df1, price_result], axis=1)
验证说明
用你提供的样例数据运行上述代码后,得到的day1_price、day2_price计算结果和你给出的预期输出完全一致。只要df1包含df2行索引对应的所有列,运算即可正常执行,无需额外做匹配处理。
内容的提问来源于stack exchange,提问作者lucas
相关产品推荐
相关产品推荐

