Есть ли встроенный инструмент перемножения двух серий в Pandas?

Хочу на выходе увидеть DF из 6 строк и 2ух колонок (т.к. 2**3 = 6). Но получается только 3:

import pandas as pd
def get_series(name_column: str, size:int=2):
    return pd.Series([i for i in range(size)], name=name_column)


def get_df():
    return pd.concat([get_series('col1'), get_series('col2', 3)], axis=1)
print(get_df())

Итог:

   col1  col2
0   0.0     0
1   1.0     1
2   NaN     2

Можно, конечно это через инструменты питона реализовать через двойной for, но хотелось бы узнать можно ли это через Pandas?


Ответы (1 шт):

Автор решения: CrazyElf

В Pandas есть аналоги любых SQL JOIN, в частности есть декартово произведение CROSS JOIN:

pd.merge(get_series('col1'), get_series('col2', 3), how='cross')

На выходе:

  col1 col2
0    0    0
1    0    1
2    0    2
3    1    0
4    1    1
5    1    2
→ Ссылка