Как соединить dataframes pandas
У нас есть два dataframe:
test1 = pd.DataFrame({'Name1': ['a','b']})
test2 = pd.DataFrame({'Name2': ['a1','a2', 'b1', 'b2']})
Нужно получить третий dataframe в следующем виде:
test3 = pd.DataFrame({'Name1': ['a','a', 'a', 'a', 'b', 'b', 'b'], 'Name2': ['a1','a2', 'b1', 'b2','a1','a2', 'b1', 'b2']})
То есть, для каждой строки из первой таблицы соответствуют все строки из второй.
Думал, что можно использовать merge, concat и т.д., но что-то не выходит.
Ответы (1 шт):
Автор решения: Алексей Р
→ Ссылка
Используйте merge() c параметром how='cross' - создает декартово произведение из обоих фреймов, сохраняет порядок левых ключей.
test1 = pd.DataFrame({'Name1': ['a','b']})
test2 = pd.DataFrame({'Name2': ['a1','a2', 'b1', 'b2']})
df = test1.merge(test2,how='cross')
print(df)
Name1 Name2
0 a a1
1 a a2
2 a b1
3 a b2
4 b a1
5 b a2
6 b b1
7 b b2