Вы можете использовать NumPy и широковещательную передачу для умножения значений одного ряда на преобразованные значения другого.

две серии:

import pandas as pd
ser1 = pd.Series(data = [1,2,3], index=[1,2,3])
ser2 = pd.Series(data = [1,2,3,4,5], index = ['a','b','c','d','e'])

Как я могу кросс-умножить два, чтобы получить желаемый результат?

pd.DataFrame(
data = [[1,2,3],[2,4,6],[3,6,9],[4,8,12],[5,10,15]],
index = ser2.index,
columns = ser1.index,)

До сих пор мой подход заключался в создании временного фрейма данных с индексами и столбцами, совпадающими с двумя рядами, а затем итерацией по одному из двух рядов с использованием iteritems (). Я чувствую, что должен быть более чистый способ достигнуть этого.