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

时间:2015-07-29 19:00:30

标签: python pandas series indices multiplying

s1创建了两个系列:s2df

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

我只想将入口s1s2相乘,忽略不匹配的索引。

我可以运行s1.reset_index()s2.reset_index(),然后从这两个dfs中获取我想要的列,因为它将原始索引转换为单独的列,但这很乏味,我认为可能有一个更简单的方法。

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

似乎无法正常工作

1 个答案:

答案 0 :(得分:3)

我认为可以使用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

我赞成采用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