从s1
创建了两个系列:s2
和df
。
每个都有相同的长度但不同的指数。 s1.multiply(s2)
联合不匹配的指数而不是与它们相乘。
我只想将入口s1
与s2
相乘,忽略不匹配的索引。
我可以运行s1.reset_index()
和s2.reset_index()
,然后从这两个dfs中获取我想要的列,因为它将原始索引转换为单独的列,但这很乏味,我认为可能有一个更简单的方法。
s1.multiply(s2, axis='columns')
似乎无法正常工作
答案 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