Hướng dẫn what is merge in python? - hợp nhất trong python là gì?

DataFrame.merge (phải, làm thế nào = 'bên trong', on = none, left_on = none, right_on = none Đúng, chỉ báo = false, xác nhận = không) [nguồn]#merge(right, how='inner', on=None, left_on=None, right_on=None, left_index=False, right_index=False, sort=False, suffixes=('_x', '_y'), copy=True, indicator=False, validate=None)[source]#

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 Series

Phả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.

onlabel hoặc danh sáchlabel or list

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-like

Tê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-like

Tê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 False

Sử 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 False

Sử 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 False

Sắ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 True

Nếu sai, tránh sao chép nếu có thể.

chỉ báo hoặc str, mặc định saibool or str, default False

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, optional

Nế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.

ReturnSdatAframe

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

Có phải hợp nhất một chức năng trong Python?

Chức năng hợp nhất () thực hiện một số loại tham gia: các tham gia một-một, nhiều một và nhiều-nhiều.Tất cả ba loại nối được truy cập thông qua một cuộc gọi giống hệt nhau đến PD.Hợp nhất () giao diện;Loại tham gia được thực hiện phụ thuộc vào dạng dữ liệu đầu vào.. All three types of joins are accessed via an identical call to the pd. merge() interface; the type of join performed depends on the form of the input data.

Sự khác biệt giữa hợp nhất và tham gia vào Python là gì?

Cả tham gia và hợp nhất đều có thể được sử dụng để kết hợp hai khung dữ liệu nhưng phương thức nối kết hợp hai khung dữ liệu trên cơ sở các chỉ mục của chúng trong khi phương thức hợp nhất linh hoạt hơn và cho phép chúng tôi chỉ định các cột bên cạnh chỉ mục để tham gia vào cả hai khung dữ liệu.the join method combines two dataframes on the basis of their indexes whereas the merge method is more versatile and allows us to specify columns beside the index to join on for both dataframes.

Merge có giống như tham gia không?

Sự khác biệt chính giữa tham gia VS Merge sẽ là;tham gia () được sử dụng để kết hợp hai khung dữ liệu trên chỉ mục nhưng không phải trên các cột trong khi Merge () chủ yếu được sử dụng để chỉ định các cột bạn muốn tham gia, điều này cũng hỗ trợ tham gia vào các chỉ mục và kết hợp các chỉ mục và cột.join() is used to combine two DataFrames on the index but not on columns whereas merge() is primarily used to specify the columns you wanted to join on, this also supports joining on indexes and combination of index and columns.