DataFrames执行点积运算时出现矩阵未对齐错误如何解决?
问题解决:DataFrame点积对齐错误
核心原因
两个DataFrame的列名不匹配:butter_prices 中是 Almond butter,而 weekly_sales 中是 Almonds butter(多了一个's')。Pandas的dot()方法会按标签对齐矩阵,标签不匹配导致维度对齐失败。
解决步骤
1. 修正列名不匹配问题
先将weekly_sales中的列名统一为和butter_prices一致:
# 重命名weekly_sales的列,修正拼写差异 weekly_sales = weekly_sales.rename(columns={"Almonds butter": "Almond butter"})
2. 重新执行点积运算
修正列名后,两个DataFrame的标签完全对齐,即可成功计算点积:
# 计算点积,得到每日总销售额 daily_total_sales = butter_prices.dot(weekly_sales.T)
结果示例
执行后会得到一个(1,5)的DataFrame,对应周一到周五的总销售额:
Mon Tues Wed Thurs Fri Price 240 132 492 200 132
备选方案(忽略标签直接计算)
如果不需要保留标签对齐的安全性,可以直接用numpy数组计算(不推荐,若列顺序变化会出错):
import numpy as np daily_total_sales = np.dot(butter_prices.values, weekly_sales.values.T)
内容的提问来源于stack exchange,提问作者Userxyz
相关产品推荐
相关产品推荐

