Python 将索引不匹配的两个系列相乘

Python 将索引不匹配的两个系列相乘,python,pandas,series,indices,multiplication,Python,Pandas,Series,Indices,Multiplication,从df创建了两个系列:s1和s2 每个都有相同的长度,但指数不同s1。将(s2)不匹配的索引相乘,而不是相乘 我只想将entrywises1与s2相乘,忽略不匹配的索引 我可以运行s1.reset_index()和s2.reset_index(),然后从这两个dfs中获取我想要的列,因为它会将原始索引变成一个单独的列,但这很繁琐,我想可能有一种更简单的方法来实现 s1.multiply(s2, axis='columns') 似乎也不起作用我认为使用reset\u index()是一种方法,但

df
创建了两个系列:
s1
s2

每个都有相同的长度,但指数不同<代码>s1。将(s2)不匹配的索引相乘,而不是相乘

我只想将entrywise
s1
s2
相乘,忽略不匹配的索引

我可以运行
s1.reset_index()
s2.reset_index()
,然后从这两个dfs中获取我想要的列,因为它会将原始索引变成一个单独的列,但这很繁琐,我想可能有一种更简单的方法来实现

s1.multiply(s2, axis='columns')

似乎也不起作用

我认为使用
reset\u index()
是一种方法,但是可以选择删除索引,而不是将其推回到数据帧中

像这样:

s1 = pd.Series([1,2,3,4,5,6,7], index=[52,34,3,53,636,7,4])
52     1
34     2
3      3
53     4
636    5
7      6
4      7
dtype: int64

s1.reset_index(drop=True)
0    1
1    2
2    3
3    4
4    5
5    6
6    7
dtype: int64
我之所以赞成使用
reset_index()
方法,而不是简单地乘以值的其他建议方法

s1 * s2.values
这不是很明确。这一行并没有告诉我您正在解决索引问题

这一行非常明确地告诉我们,您正在解决一个索引问题:

s1.reset_index(drop=True) * s2.reset_index(drop=True)
或者将其分解为多行:

s1.reset_index(inplace=True, drop=True)
s2.reset_index(inplace=True, drop=True)
s1 * s2

您可以转换为numpy数组,该数组将忽略带有
值的索引
s1.values.mul(s2.values)
。感谢John,这确实可以将序列的值相乘。不幸的是,它将该系列转换为numpy数组。你知道一种方法可以让整个过程使用series,而不是移动到numpy数组,然后返回series(result=pandas.series(s1.values*s2.values))?
s1*s2.values
应该工作这取决于你想要的索引是什么。您的建议将产生一个新的
[0,1,2…]
索引,而Ed的建议将使用
s1
中的索引,好的。谢谢John和Ed。这两个都涵盖了我需要的解决方案。