Hợp nhất DataFrame hoặc các đối tượng loạt được đặt tên với tham gia kiểu cơ sở dữ liệu.
Một đối tượng Series được đặt tên được coi là một DataFrame với một cột có tên.
Sự tham gia được thực hiện trên các cột hoặc chỉ mục. Nếu tham gia các cột trên các cột, các chỉ mục DataFrame sẽ bị bỏ qua. Mặt khác, nếu tham gia các chỉ mục trên các chỉ mục hoặc chỉ mục trên một cột hoặc cột, chỉ mục sẽ được truyền lại. Khi thực hiện hợp nhất chéo, không cho phép hợp nhất thông số kỹ thuật của cột.
Cảnh báo
Nếu cả hai cột khóa chứa các hàng trong đó phím là giá trị null, các hàng đó sẽ được khớp với nhau. Điều này khác với hành vi tham gia SQL thông thường và có thể dẫn đến kết quả bất ngờ.
Tham sốRightDataFrame hoặc loạt được đặt tênrightDataFrame or named SeriesPhản đối hợp nhất với.
Làm thế nào {’trái,’ phải, ’bên ngoài,‘ bên trong{‘left’, ‘right’, ‘outer’, ‘inner’, ‘cross’}, default ‘inner’Loại hợp nhất sẽ được thực hiện.
Trái: Chỉ sử dụng các phím từ khung bên trái, tương tự như tham gia bên ngoài bên trái SQL; Bảo tồn thứ tự chính.
Phải: Chỉ sử dụng các phím từ khung bên phải, tương tự như tham gia bên ngoài bên phải SQL; Bảo tồn thứ tự chính.
Bên ngoài: Sử dụng Union of Keys từ cả hai khung, tương tự như tham gia SQL Full bên ngoài; Sắp xếp phím từ vựng.
bên trong: Sử dụng giao điểm của các khóa từ cả hai khung, tương tự như tham gia bên trong SQL; Bảo tồn thứ tự của các phím trái.
Cross: Tạo sản phẩm Cartesian từ cả hai khung, bảo quản thứ tự của các phím bên trái.
Mới trong phiên bản 1.2.0.
Tên cấp hoặc chỉ mục để tham gia. Chúng phải được tìm thấy trong cả hai khung dữ liệu. Nếu bật là không và không hợp nhất trên các chỉ mục thì điều này mặc định là giao điểm của các cột trong cả hai khung dữ liệu.
left_onlabel hoặc danh sách, hoặc giống như mảnglabel or list, or array-likeTên cấp hoặc chỉ mục để tham gia vào DataFrame bên trái. Cũng có thể là một mảng hoặc danh sách các mảng có độ dài của DataFrame bên trái. Các mảng này được đối xử như thể chúng là cột.
phải_onlabel hoặc danh sách, hoặc giống như mảnglabel or list, or array-likeTên cấp hoặc chỉ mục để tham gia vào DataFrame đúng. Cũng có thể là một mảng hoặc danh sách các mảng có độ dài của DataFrame phù hợp. Các mảng này được đối xử như thể chúng là cột.
left_indexbool, mặc định saibool, default FalseSử dụng chỉ mục từ DataFrame bên trái làm khóa nối. Nếu đó là đa dạng, số lượng khóa trong khung dữ liệu khác [có thể là chỉ mục hoặc một số cột] phải khớp với số lượng cấp độ.
right_indexbool, mặc định saibool, default FalseSử dụng chỉ mục từ DataFrame đúng làm khóa tham gia. Cùng một cảnh báo như trái_index.
sortbool, mặc định saibool, default FalseSắp xếp các phím tham gia từ vựng trong kết quả DataFrame. Nếu sai, thứ tự của các phím tham gia phụ thuộc vào loại tham gia [cách từ khóa].
SuffixesList-like, mặc định là [_x, _ _y]list-like, default is [“_x”, “_y”]Một chuỗi độ dài-2 trong đó mỗi phần tử tùy ý là một chuỗi chỉ ra hậu tố để thêm vào tên cột chồng chéo ở bên trái và phải tương ứng. Vượt qua giá trị của không thay vì chuỗi để chỉ ra rằng tên cột từ trái hoặc phải nên được để lại, không có hậu tố. Ít nhất một trong các giá trị không phải là không có.
copybool, mặc định đúngbool, default TrueNếu sai, tránh sao chép nếu có thể.
Nếu đúng, hãy thêm một cột vào DataFrame đầu ra có tên là _merge, với thông tin về nguồn của mỗi hàng. Cột có thể được đặt một tên khác bằng cách cung cấp một đối số chuỗi. Cột sẽ có một loại phân loại với giá trị của bên trái được tìm thấy trong cả hai khung dữ liệu.
ValidateStr, tùy chọnstr, optionalNếu được chỉ định, kiểm tra nếu Merge thuộc loại được chỉ định.
Một lần nữa, một trong hai bộ dữ liệu bên trái và bên phải.
Một lần nữa, một trong những bộ dữ liệu bên trái.
Càng nhiều_to_one, hoặc M: 1: Kiểm tra xem các phím hợp nhất có phải là duy nhất trong bộ dữ liệu bên phải không.
Càng nhiều_to_many, hoặc M M: Mùi: được phép, nhưng không dẫn đến séc.
Một khung dữ liệu của hai đối tượng được hợp nhất.
Ghi chú
Hỗ trợ để chỉ định các mức chỉ mục là tham số ON, left_on và right_on đã được thêm vào phiên bản 0.23.0 để hợp nhất các đối tượng loạt được đặt tên đã được thêm vào phiên bản 0.24.0
Ví dụ
>>> df1 = pd.DataFrame[{'lkey': ['foo', 'bar', 'baz', 'foo'], ... 'value': [1, 2, 3, 5]}] >>> df2 = pd.DataFrame[{'rkey': ['foo', 'bar', 'baz', 'foo'], ... 'value': [5, 6, 7, 8]}] >>> df1 lkey value 0 foo 1 1 bar 2 2 baz 3 3 foo 5 >>> df2 rkey value 0 foo 5 1 bar 6 2 baz 7 3 foo 8
Hợp nhất DF1 và DF2 trên các cột LKEY và RKEY. Các cột giá trị có các hậu tố mặc định, _x và _y, được nối thêm.
>>> df1.merge[df2, left_on='lkey', right_on='rkey'] lkey value_x rkey value_y 0 foo 1 foo 5 1 foo 1 foo 8 2 foo 5 foo 5 3 foo 5 foo 8 4 bar 2 bar 6 5 baz 3 baz 7
Hợp nhất DataFrames DF1 và DF2 với các hậu tố bên trái và phải được chỉ định được thêm vào bất kỳ cột chồng chéo nào.
>>> df1.merge[df2, left_on='lkey', right_on='rkey', ... suffixes=['_left', '_right']] lkey value_left rkey value_right 0 foo 1 foo 5 1 foo 1 foo 8 2 foo 5 foo 5 3 foo 5 foo 8 4 bar 2 bar 6 5 baz 3 baz 7
Hợp nhất DataFrames DF1 và DF2, nhưng nêu ra một ngoại lệ nếu DataFrames có bất kỳ cột chồng chéo nào.
>>> df1.merge[df2, left_on='lkey', right_on='rkey', suffixes=[False, False]] Traceback [most recent call last]: ... ValueError: columns overlap but no suffix specified: Index[['value'], dtype='object']
>>> df1 = pd.DataFrame[{'a': ['foo', 'bar'], 'b': [1, 2]}] >>> df2 = pd.DataFrame[{'a': ['foo', 'baz'], 'c': [3, 4]}] >>> df1 a b 0 foo 1 1 bar 2 >>> df2 a c 0 foo 3 1 baz 4
>>> df1.merge[df2, how='inner', on='a'] a b c 0 foo 1 3
>>> df1.merge[df2, how='left', on='a'] a b c 0 foo 1 3.0 1 bar 2 NaN
>>> df1 = pd.DataFrame[{'left': ['foo', 'bar']}] >>> df2 = pd.DataFrame[{'right': [7, 8]}] >>> df1 left 0 foo 1 bar >>> df2 right 0 7 1 8
>>> df1.merge[df2, how='cross'] left right 0 foo 7 1 foo 8 2 bar 7 3 bar 8