Есть ли встроенный инструмент перемножения двух серий в 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