Использование панд 0.24.2. Документ Merge, join & concatenate doc подразумевает, что метод слияния вызывает функцию concat (). Я объединяю два DataFrames с отношением M: M и хочу лучше понять, как работает функция concat (). Этот код вызывает метод merge () и возвращает ожидаемые результаты:
>>> import pandas as pd
>>> left = pd.DataFrame([['001', 4123],
... ['001', 4855],
... ['001', 4761],
... ['002', 4991],
... ['003', 5001],
... ['004', 3999],
... ['004', 4175],
... ['004', 4101]],
... columns=['ID', 'Value_l'])
>>> right = pd.DataFrame([['004', 1111],
... ['004', 1234],
... ['004', 1133],
... ['002', 1921],
... ['003', 2001],
... ['001', 2222]],
... columns=['ID', 'Value_r'])
>>> merge_lr = pd.merge(left, right, how='outer', sort=True)
>>> print(merge_lr)
ID Value_l Value_r
0 001 4123 2222
1 001 4855 2222
2 001 4761 2222
3 002 4991 1921
4 003 5001 2001
5 004 3999 1111
6 004 3999 1234
7 004 3999 1133
8 004 4175 1111
9 004 4175 1234
10 004 4175 1133
11 004 4101 1111
12 004 4101 1234
13 004 4101 1133
Как собрать тот же выходной DataFrame, вызывающий функцию concat ()? Ясно, что этот пример неверен:
>>> merge_lr2 = pd.concat([left, right], axis=0, join='outer', sort=True, ignore_index=True)
>>> print(merge_lr2)
ID Value_l Value_r
0 001 4123.0 NaN
1 001 4855.0 NaN
2 001 4761.0 NaN
3 002 4991.0 NaN
4 003 5001.0 NaN
5 004 3999.0 NaN
6 004 4175.0 NaN
7 004 4101.0 NaN
8 004 NaN 1111.0
9 004 NaN 1234.0
10 004 NaN 1133.0
11 002 NaN 1921.0
12 003 NaN 2001.0
13 001 NaN 2222.0
Могу ли я выполнить полное внешнее соединение с DataFrames, имеющими отношение M: M, с функцией concat ()?