在Python中将两个数据框中的两列相乘并求和
我有两个数据框,都有 6 行。我想将两个数据帧(每个 df 一个)中两个选定列中的值相乘,
result = sum(a * b for a, b in zip(list(df1['col1']), list(df2['col3'])))
我似乎没有得到我想要的。我在 Excel 中“手动”进行了计算(针对我的时间序列中的一个日期),这给了我预期的结果。所以我的问题是我是否做错了什么?
I have two dataframes both with 6 rows. I want to multiply the values in two selected columns from the two dataframes (one from each df)
result = sum(a * b for a, b in zip(list(df1['col1']), list(df2['col3'])))
I do not seem to get what I want. I did the calc "manually" in Excel (for one date in my time series), which gave me the expected result. So my question is if I did something wrong?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
如果相同的行数和相同的索引简单相减,然后使用
sum
:如果可能不同的索引但相同的长度:
或使用
numpy.dot
:如果可能的话,不同的长度和不同的索引:
If same number of rows and same indices simple subtract and then use
sum
:If possible different indices but same length:
Or use
numpy.dot
:If possible different length and different indices:
你可以这样做:
这也会对乘法求和。
如果添加 [],您的公式也有效:
这会产生相同的结果。
You can do it like this:
This will also sum the multiplications.
Your formulation works too, if you add []:
This gives the same result.
您只需使用 pandas 抽象即可。
如果您想获得这些结果值的总和,您可以这样做:
You will can just use pandas abstractions for it.
If then you want to get the sum of those result values you can just do: