Так что я думаю, что это может получить вам большую часть пути туда, если у вас есть две серии разной длины. Это похоже на очень ручной процесс, но я не могу думать о другом способе, используя pandas или NumPy.
>>>> a = Series([1, 3, 3, 5, 5])
>>>> b = Series([5, 10])
Сначала конвертировать ваши Row значения a
к DataFrame и сделать копии этой серии в виде новых колонн столько, сколько у вас есть значения в ваших столбцах серий b
.
>>>> result = DataFrame(a)
>>>> for i in xrange(len(b)):
result[i] = a
0 1
0 1 1
1 3 3
2 3 3
3 5 5
4 5 5
Вы можете транслировать серию b
над DataFrame result
:
>>>> result = result.mul(b)
0 1
0 5 10
1 15 30
2 15 30
3 25 50
4 25 50
В примере я выбрал, вы будете в конечном итоге с индексами, которые являются дубликатами из-за вашей первоначальной серии. Я бы рекомендовал оставить индексы как уникальные идентификаторы. Это создает программный смысл, иначе вы вернете более одного значения, когда вы выберете индекс, который имеет более одной строки, назначенной ему. Если необходимо, вы можете проиндексировать ваши заголовки строк и столбцов этикетки с помощью этих функций:
>>>> result.columns = b
>>>> result.set_index(a)
5 10
1 5 10
3 15 30
3 15 30
5 25 50
5 25 50
Пример дубликата индексации:
>>>> result.loc[3]
5 10
3 15 30
3 15 30
Что вы пробовали? Вы можете отредактировать свой вопрос и добавить код, ошибки или результаты. – Theresa