【发布时间】:2015-10-20 22:28:19
【问题描述】:
从df创建了两个系列:s1和s2。
每个都有相同的长度但不同的索引。 s1.multiply(s2) 联合不匹配的索引而不是相乘。
我只想将 entrywise s1 与 s2 相乘,忽略不匹配的索引。
我可以运行 s1.reset_index() 和 s2.reset_index() 然后从这两个 dfs 中获取我想要的列,因为它将原始索引变成一个单独的列,但这很乏味,我认为可能有更简单的方法它。
s1.multiply(s2, axis='columns')
好像也不行
【问题讨论】:
-
你可以转换成一个numpy数组,它会忽略
values的索引:s1.values.mul(s2.values)。 -
感谢约翰,这确实可以使系列的值相乘。不幸的是,它将系列转换为 numpy 数组。您是否知道一种使用系列来保持整个过程的方法,而不是移动到 numpy 数组,然后再回到系列( result = pandas.Series(s1.values*s2.values) )?
-
s1 * s2.values应该可以工作 -
这取决于您希望索引是什么。您的建议将产生一个新的
[0,1,2...]索引,而 Ed 的建议将使用来自s1的索引 -
啊,好的。谢谢约翰和埃德。这两个都涵盖了我需要的解决方案。
标签: python pandas series indices multiplication