У меня есть два pandas DataFrames / Series, содержащие по одной строке каждая.
df1 = pd.DataFrame([1, 2, 3, 4])
df2 = pd.DataFrame(['one', 'two', 'three', 'four'])
Теперь я хочу получить все возможные комбинации в матрицу / DataFrame n * n со значениями для всех перекрестных продуктов, вывод пользовательской функции.
def my_function(x, y):
return f"{x}:{y}"
Следовательно, это должно привести к:
df = pd.DataFrame([['1:one', '2:one', '3:one', '4:one'],
['1:two', '2:two', '3:two', '4:two'],
['1:three', '2:three', '3:three', '4:three'],
['1:four', '2:four', '3:four', '4:four']])
0 1 2 3
0 1:one 2:one 3:one 4:one
1 1:two 2:two 3:two 4:two
2 1:three 2:three 3:three 4:three
3 1:four 2:four 3:four 4:four
Хотя я могу построить свою собственную матрицу через itertools.product
, это кажется очень неэффективным способом для больших наборов данных, и мне было интересно, есть ли способ более pythoni c. Заранее спасибо.