Вы можете внутренне объединить два DataFrames во время конкатенации, что приведет к пересечению двух DataFrames.
Синтаксис функции concat() к внутреннему соединению приведен ниже.
pd.concat([df1, df2], axis=1, join='inner')
Внутреннее соединение приводит к созданию DataFrame, который имеет пересечение по заданной оси с функцией конкатенации.
Пример 1
В этом примере мы возьмем два DataFrames и найдем их внутреннее соединение по оси = 1.
import pandas as pd
df1 = pd.DataFrame({'A': ['A0', 'A1', 'A2', 'A3'],
'B': ['B0', 'B1', 'B2', 'B3'],
'C': ['C0', 'C1', 'C2', 'C3'],
'D': ['D0', 'D1', 'D2', 'D3']},
index=[0, 1, 2, 3])
df2 = pd.DataFrame({'B': ['B2', 'B3', 'B4', 'B5'],
'D': ['D2', 'D3', 'D4', 'D5'],
'F': ['F2', 'F3', 'F4', 'F5']},
index=[2, 3, 4, 5])
result = pd.concat([df1, df2], axis=1, join='inner')
print(result)
Вывод:
D:\>python example.py
A B C D B D F
2 A2 B2 C2 D2 B2 D2 F2
3 A3 B3 C3 D3 B3 D3 F3
Пример 2
В этом примере мы попробуем внутреннее соединение DataFrames по оси, отличной от оси в предыдущем примере.
import pandas as pd
df1 = pd.DataFrame({'A': ['A0', 'A1', 'A2', 'A3'],
'B': ['B0', 'B1', 'B2', 'B3'],
'C': ['C0', 'C1', 'C2', 'C3'],
'D': ['D0', 'D1', 'D2', 'D3']},
index=[0, 1, 2, 3])
df2 = pd.DataFrame({'B': ['B2', 'B3', 'B4', 'B5'],
'D': ['D2', 'D3', 'D4', 'D5'],
'F': ['F2', 'F3', 'F4', 'F5']},
index=[2, 3, 4, 5])
result = pd.concat([df1, df2], axis=0, join='inner')
print(result)
Вывод:
D:\>python example.py
B D
0 B0 D0
1 B1 D1
2 B2 D2
3 B3 D3
2 B2 D2
3 B3 D3
4 B4 D4
5 B5 D5
Пример 3: с помощью concat()
В этом примере мы возьмем более двух DataFrames, то есть три, и найдем внутреннее соединение этих DataFrames вдоль оси.
import pandas as pd
df1 = pd.DataFrame({'A': ['A0', 'A1', 'A2', 'A3'],
'B': ['B0', 'B1', 'B2', 'B3'],
'C': ['C0', 'C1', 'C2', 'C3'],
'D': ['D0', 'D1', 'D2', 'D3']},
index=[0, 1, 2, 3])
df2 = pd.DataFrame({'B': ['B2', 'B3', 'B4', 'B5'],
'D': ['D2', 'D3', 'D4', 'D5'],
'F': ['F2', 'F3', 'F4', 'F5']},
index=[2, 3, 4, 5])
df3 = pd.DataFrame({'D': ['D3', 'D4', 'D5'],
'G': ['G3', 'G4', 'G5']},
index=[3, 4, 5])
result = pd.concat([df1, df2, df3], axis=1, join='inner')
print(result)
Вывод:
D:\>python example.py
A B C D B D F D G
3 A3 B3 C3 D3 B3 D3 F3 D3 G3
В этом руководстве примеров Python мы узнали, как внутреннее объединить два или более DataFrames с помощью функции конкатенации по оси.