用不匹配的指数乘以两个Pandas系列

2024-10-01 13:32:33 发布

您现在位置:Python中文网/ 问答频道 /正文

创建了两个系列:s1和{}来自df。在

它们的长度相同,但指数不同。s1.multiply(s2)合并不匹配的指数,而不是与之相乘。在

我只想将entrywise s1与{}相乘,忽略不匹配的索引。在

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

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

似乎也不管用


Tags: columns方法dfindex指数multiplyresets2
1条回答
网友
1楼 · 发布于 2024-10-01 13:32:33

我认为使用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()方法,而不是其他建议的简单乘以值的方法

^{pr2}$

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

虽然这一行非常明确地说明了您正在解决一个索引问题:

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

相关问题 更多 >