Hướng dẫn merge two dataframe with different length python - hợp nhất hai khung dữ liệu với python độ dài khác nhau

Tôi có vấn đề sau: Tôi có hai khung dữ liệu gấu trúc có độ dài khác nhau chứa một số hàng và cột có các giá trị chung và một số khung khác nhau, như thế này:

df1:                                 df2:

      Column1  Column2  Column3           ColumnA  ColumnB ColumnC
    0    a        x        x            0    c        y       y
    1    c        x        x            1    e        z       z
    2    e        x        x            2    a        s       s
    3    d        x        x            3    d        f       f
    4    h        x        x
    5    k        x        x            

Những gì tôi muốn làm bây giờ là hợp nhất hai khung dữ liệu để nếu columna và cột1 có cùng giá trị, các hàng từ DF2 được gắn vào hàng tương ứng trong DF1, như thế này:

df1:
    Column1  Column2  Column3  ColumnB  ColumnC
  0    a        x        x        s        s
  1    c        x        x        y        y
  2    e        x        x        z        z
  3    d        x        x        f        f
  4    h        x        x        NaN      NaN
  5    k        x        x        NaN      NaN

Tôi biết rằng sự hợp nhất có thể thực hiện được thông qua

df1.merge(df2,left_on='Column1', right_on='ColumnA')

Nhưng lệnh này làm giảm tất cả các hàng không giống nhau trong cột1 và columna trong cả hai tệp. Thay vào đó, tôi muốn giữ các hàng này trong DF1 và chỉ cần gán NAN cho chúng trong các cột nơi các hàng khác có giá trị từ DF2, như được hiển thị ở trên. Có cách nào suôn sẻ để làm điều này trong gấu trúc không?

Cảm ơn trước!

Làm cách nào để hợp nhất hai khung dữ liệu với các cột khác nhau?

Có thể tham gia các cột khác nhau đang sử dụng phương thức Concat (). DataFrame: Đó là tên DataFrame. Trục: 0 đề cập đến trục hàng và 1 đề cập đến trục cột. Tham gia: Loại tham gia ..

Mở máy tính xách tay Jupyter ..

  • Nhập các mô -đun cần thiết ..
  • Tạo khung dữ liệu ..
  • Làm cách nào để hợp nhất hai khung dữ liệu với các cột khác nhau?

    Có thể tham gia các cột khác nhau đang sử dụng phương thức Concat (). DataFrame: Đó là tên DataFrame. Trục: 0 đề cập đến trục hàng và 1 đề cập đến trục cột. Tham gia: Loại tham gia ..

    Mở máy tính xách tay Jupyter ..

    Nhập các mô -đun cần thiết ..

    Syntax:

    DataFrame.merge(parameters)

    Tạo khung dữ liệu ..

    Thực hiện các hoạt động.. 

    Phân tích kết quả ..

    Python3

    import pandas as pd

    list1 = [7058,

    df1:
        Column1  Column2  Column3  ColumnB  ColumnC
      0    a        x        x        s        s
      1    c        x        x        y        y
      2    e        x        x        z        z
      3    d        x        x        f        f
      4    h        x        x        NaN      NaN
      5    k        x        x        NaN      NaN
    
    0____9
    df1:
        Column1  Column2  Column3  ColumnB  ColumnC
      0    a        x        x        s        s
      1    c        x        x        y        y
      2    e        x        x        z        z
      3    d        x        x        f        f
      4    h        x        x        NaN      NaN
      5    k        x        x        NaN      NaN
    
    2

    df1:
        Column1  Column2  Column3  ColumnB  ColumnC
      0    a        x        x        s        s
      1    c        x        x        y        y
      2    e        x        x        z        z
      3    d        x        x        f        f
      4    h        x        x        NaN      NaN
      5    k        x        x        NaN      NaN
    
    6= [7058,
    df1:
        Column1  Column2  Column3  ColumnB  ColumnC
      0    a        x        x        s        s
      1    c        x        x        y        y
      2    e        x        x        z        z
      3    d        x        x        f        f
      4    h        x        x        NaN      NaN
      5    k        x        x        NaN      NaN
    
    0____9____
    df1.merge(df2,left_on='Column1', right_on='ColumnA')
    
    3____9
    df1:
        Column1  Column2  Column3  ColumnB  ColumnC
      0    a        x        x        s        s
      1    c        x        x        y        y
      2    e        x        x        z        z
      3    d        x        x        f        f
      4    h        x        x        NaN      NaN
      5    k        x        x        NaN      NaN
    
    2

    df1.merge(df2,left_on='Column1', right_on='ColumnA')
    
    9= [import2, import4, import6import7

    import8import9

    df1:
        Column1  Column2  Column3  ColumnB  ColumnC
      0    a        x        x        s        s
      1    c        x        x        y        y
      2    e        x        x        z        z
      3    d        x        x        f        f
      4    h        x        x        NaN      NaN
      5    k        x        x        NaN      NaN
    
    5

    pandas as pd1= [import2, import4, pandas as pd8pandas as pd9

    import8import6, import9

    df1:
        Column1  Column2  Column3  ColumnB  ColumnC
      0    a        x        x        s        s
      1    c        x        x        y        y
      2    e        x        x        z        z
      3    d        x        x        f        f
      4    h        x        x        NaN      NaN
      5    k        x        x        NaN      NaN
    
    5

    list1 5= list1 7

    list1 8list1 9=0=1=2=3

    =4=5=6=7

    =8

    =9= list1 7

    list1 8list1 9=0[5=2[7

    =4=570580=7

    70582

    =4=5, 1=7

    , 3

    Output:

    Hướng dẫn merge two dataframe with different length python - hợp nhất hai khung dữ liệu với python độ dài khác nhau

    Ví dụ 2:

    Dưới đây là một chương trình khác để hợp nhất một khung dữ liệu có độ dài 4 và một khung dữ liệu khác có độ dài 9.

    Python3

    import pandas as pd

    list1 = [7058,

    df1:
        Column1  Column2  Column3  ColumnB  ColumnC
      0    a        x        x        s        s
      1    c        x        x        y        y
      2    e        x        x        z        z
      3    d        x        x        f        f
      4    h        x        x        NaN      NaN
      5    k        x        x        NaN      NaN
    
    0____9
    df1:
        Column1  Column2  Column3  ColumnB  ColumnC
      0    a        x        x        s        s
      1    c        x        x        y        y
      2    e        x        x        z        z
      3    d        x        x        f        f
      4    h        x        x        NaN      NaN
      5    k        x        x        NaN      NaN
    
    2

    df1:
        Column1  Column2  Column3  ColumnB  ColumnC
      0    a        x        x        s        s
      1    c        x        x        y        y
      2    e        x        x        z        z
      3    d        x        x        f        f
      4    h        x        x        NaN      NaN
      5    k        x        x        NaN      NaN
    
    6= [7058,
    df1:
        Column1  Column2  Column3  ColumnB  ColumnC
      0    a        x        x        s        s
      1    c        x        x        y        y
      2    e        x        x        z        z
      3    d        x        x        f        f
      4    h        x        x        NaN      NaN
      5    k        x        x        NaN      NaN
    
    0____9____
    df1.merge(df2,left_on='Column1', right_on='ColumnA')
    
    3____9
    df1:
        Column1  Column2  Column3  ColumnB  ColumnC
      0    a        x        x        s        s
      1    c        x        x        y        y
      2    e        x        x        z        z
      3    d        x        x        f        f
      4    h        x        x        NaN      NaN
      5    k        x        x        NaN      NaN
    
    2

    df1:
        Column1  Column2  Column3  ColumnB  ColumnC
      0    a        x        x        s        s
      1    c        x        x        y        y
      2    e        x        x        z        z
      3    d        x        x        f        f
      4    h        x        x        NaN      NaN
      5    k        x        x        NaN      NaN
    
    20
    df1:
        Column1  Column2  Column3  ColumnB  ColumnC
      0    a        x        x        s        s
      1    c        x        x        y        y
      2    e        x        x        z        z
      3    d        x        x        f        f
      4    h        x        x        NaN      NaN
      5    k        x        x        NaN      NaN
    
    21,
    df1:
        Column1  Column2  Column3  ColumnB  ColumnC
      0    a        x        x        s        s
      1    c        x        x        y        y
      2    e        x        x        z        z
      3    d        x        x        f        f
      4    h        x        x        NaN      NaN
      5    k        x        x        NaN      NaN
    
    23,
    df1:
        Column1  Column2  Column3  ColumnB  ColumnC
      0    a        x        x        s        s
      1    c        x        x        y        y
      2    e        x        x        z        z
      3    d        x        x        f        f
      4    h        x        x        NaN      NaN
      5    k        x        x        NaN      NaN
    
    25,
    df1:
        Column1  Column2  Column3  ColumnB  ColumnC
      0    a        x        x        s        s
      1    c        x        x        y        y
      2    e        x        x        z        z
      3    d        x        x        f        f
      4    h        x        x        NaN      NaN
      5    k        x        x        NaN      NaN
    
    27
    df1:
        Column1  Column2  Column3  ColumnB  ColumnC
      0    a        x        x        s        s
      1    c        x        x        y        y
      2    e        x        x        z        z
      3    d        x        x        f        f
      4    h        x        x        NaN      NaN
      5    k        x        x        NaN      NaN
    
    5

    df1.merge(df2,left_on='Column1', right_on='ColumnA')
    
    9= [import2, import4, import6import7

    import8import9

    df1:
        Column1  Column2  Column3  ColumnB  ColumnC
      0    a        x        x        s        s
      1    c        x        x        y        y
      2    e        x        x        z        z
      3    d        x        x        f        f
      4    h        x        x        NaN      NaN
      5    k        x        x        NaN      NaN
    
    5

    pandas as pd1= [import2, import4,

    df1:
        Column1  Column2  Column3  ColumnB  ColumnC
      0    a        x        x        s        s
      1    c        x        x        y        y
      2    e        x        x        z        z
      3    d        x        x        f        f
      4    h        x        x        NaN      NaN
      5    k        x        x        NaN      NaN
    
    48pandas as pd9

    Các

    import8

    df1:
        Column1  Column2  Column3  ColumnB  ColumnC
      0    a        x        x        s        s
      1    c        x        x        y        y
      2    e        x        x        z        z
      3    d        x        x        f        f
      4    h        x        x        NaN      NaN
      5    k        x        x        NaN      NaN
    
    58,
    df1:
        Column1  Column2  Column3  ColumnB  ColumnC
      0    a        x        x        s        s
      1    c        x        x        y        y
      2    e        x        x        z        z
      3    d        x        x        f        f
      4    h        x        x        NaN      NaN
      5    k        x        x        NaN      NaN
    
    60,
    df1:
        Column1  Column2  Column3  ColumnB  ColumnC
      0    a        x        x        s        s
      1    c        x        x        y        y
      2    e        x        x        z        z
      3    d        x        x        f        f
      4    h        x        x        NaN      NaN
      5    k        x        x        NaN      NaN
    
    62
    df1:
        Column1  Column2  Column3  ColumnB  ColumnC
      0    a        x        x        s        s
      1    c        x        x        y        y
      2    e        x        x        z        z
      3    d        x        x        f        f
      4    h        x        x        NaN      NaN
      5    k        x        x        NaN      NaN
    
    5

    list1 5= list1 7

    list1 8list1 9=0=1=2=3

    =4=5=6=7

    =8

    =9= list1 7

    list1 8list1 9=0[5=2[7

    =4=570580=7

    70582

    =4=5, 1=7

    , 3

    Output:

    Hướng dẫn merge two dataframe with different length python - hợp nhất hai khung dữ liệu với python độ dài khác nhau


    Bỏ phiếu cho khó khăn

    Khó khăn hiện tại: Dễ dàng

    Làm cách nào để hợp nhất hai khung dữ liệu với các độ dài khác nhau?

    Các bước -..
    Tạo DataFrame đầu tiên ..
    Tạo DataFrame thứ hai ..
    Sử dụng bất kỳ chức năng nào từ bên dưới đã cho và kết hợp chúng ..
    Hiển thị bộ dữ liệu được tạo như vậy ..

    Làm cách nào để hợp nhất hai khung dữ liệu với các hàng khác nhau trong gấu trúc?

    Hàm concat () có thể được sử dụng để kết hợp hai khung dữ liệu bằng cách thêm các hàng của cái này vào cái kia. Hàm hợp nhất () tương đương với mệnh đề tham gia SQL. 'trái', 'phải' và 'bên trong' tham gia đều có thể.. The merge() function is equivalent to the SQL JOIN clause. 'left', 'right' and 'inner' joins are all possible.

    Làm cách nào để hợp nhất hai khung dữ liệu với các cột khác nhau?

    Có thể tham gia các cột khác nhau đang sử dụng phương thức Concat ().DataFrame: Đó là tên DataFrame.Trục: 0 đề cập đến trục hàng và 1 đề cập đến trục cột.Tham gia: Loại tham gia ...
    Mở máy tính xách tay Jupyter ..
    Nhập các mô -đun cần thiết ..
    Tạo khung dữ liệu ..
    Thực hiện các hoạt động..
    Phân tích kết quả ..

    Làm cách nào để hợp nhất hai khung dữ liệu trong Python với các tên cột khác nhau?

    Các tên cột khác nhau được chỉ định để hợp nhất trong gấu trúc bằng cách sử dụng các tham số bên tráiHợp nhất các khung dữ liệu với các tên khác nhau cho biến tham gia đạt được bằng cách sử dụng các đối số bên trái_on và right_on cho chức năng hợp nhất gấu trúc.using the left_on and right_on arguments to the pandas merge function.