将两个具有不匹配指数的熊猫系列相乘

int*_*tdt 8 python series multiplying indices pandas

创建两个系列:s1s2df.

每个都有相同的长度但不同的指数.s1.multiply(s2)联合不匹配的指数而不是乘以它们.

我只想逐渐s1反对s2忽略不匹配的指数.

我可以运行s1.reset_index()s2.reset_index()再取我这两个DFS希望之列,因为它把原始索引到一个单独的列,但这是乏味的,我想有可能是做一个简单的方法.

s1.multiply(s2, axis='columns')
Run Code Online (Sandbox Code Playgroud)

似乎也没有用

fir*_*ynx 4

我认为继续reset_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
Run Code Online (Sandbox Code Playgroud)

reset_index()在其他建议的简单乘以值的方法之前更喜欢该方法的原因

s1 * s2.values
Run Code Online (Sandbox Code Playgroud)

就是这不是很明确。这一行并没有告诉我您正在解决一个索引问题。

虽然这一行非常明确地讲述了您正在解决索引问题的故事:

s1.reset_index(drop=True) * s2.reset_index(drop=True)
Run Code Online (Sandbox Code Playgroud)

或者将其分解为多行:

s1.reset_index(inplace=True, drop=True)
s2.reset_index(inplace=True, drop=True)
s1 * s2
Run Code Online (Sandbox Code Playgroud)