python - 将两个指数不匹配的 Pandas 系列相乘

标签 python pandas series indices multiplication

df 创建了两个系列:s1s2

每个都有相同的长度但不同的索引。 s1.multiply(s2) 合并不匹配的索引,而不是与它们相乘。

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

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

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

好像也没用

最佳答案

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

关于python - 将两个指数不匹配的 Pandas 系列相乘,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31708959/

相关文章:

python - 解析其列少于 4 个字符的行

python - Pandas:将类别转换为数字

python - 用 pandas 搜索并返回匹配子串的索引

python-3.x - pandas 选择发生日期时间错误的行

python - OLS 与 Pandas : datetime index as predictor

python - 使用来自 EVE 的自签名证书连接到 MongoDB

python - pandas 数据框切片的乘法

python - 一次返回一个单词

python - 无法在 Raspberry Pi 上的 Python 3.6 上安装基于 C 的模块,例如 lxml 和 Cython

python - ewmvar 在 pandas 中的向后兼容性