Làm thế nào để bạn tham gia 3 bảng trong python?

Thông qua việc sử dụng ngôn ngữ lập trình, chúng ta sẽ cùng nhau giải câu đố Mysql Inner Join 3 Tables trong bài học này. Điều này được thể hiện trong đoạn mã sau

Show

SELECT student.firstname,
       student.lastname,
       exam.name,
       exam.date,
       grade.grade
  FROM grade
 INNER JOIN student ON student.studentId = grade.fk_studentId
 INNER JOIN exam ON exam.examId = grade.fk_examId
 ORDER BY exam.date

Chúng tôi đã có thể tìm ra cách giải mã Mysql Inner Join 3 Tables bằng cách xem xét một loạt các mẫu khác

Làm cách nào để tham gia 3 bảng bên trong tham gia MySQL?

Có thể sử dụng nhiều câu lệnh nối với nhau để nối nhiều bảng cùng một lúc. Để làm điều đó, bạn thêm câu lệnh INNER JOIN thứ hai và câu lệnh ON thứ hai để chỉ ra bảng thứ ba và mối quan hệ thứ hai. 01-Apr-2022

Có thể tham gia bên trong cho 3 bảng không?

Cách phổ biến nhất để tham gia ba bảng diễn ra như thế này. CHỌN * TỪ Bảng1 INNER THAM GIA Bảng2 BẬT Điều kiện INNER THAM GIA Bảng3 BẬT Điều kiện; . Bạn cũng có thể kết hợp các loại tham gia nếu cần (ví dụ bên dưới). 19-Feb-2021

Làm cách nào để tham gia 3 bảng trong SQL?

Cách nối 3 bảng trở lên trong SQL

  • Tham gia đơn giản. Đầu tiên, tất cả các bảng được nối bằng từ khóa THAM GIA, sau đó mệnh đề WHERE được sử dụng. TỪ Nhân viên e THAM GIA Tiền lương s THAM GIA Bộ phận d. Ở ĐÂU. ID = s. Emp_ID VÀ e
  • Tham gia lồng nhau. Câu lệnh JOIN lồng nhau được sử dụng với từ khóa ON. CHỌN e. ID, e. tên, s. Lương, d

Bạn có thể tự nhiên tham gia 3 bảng trong SQL không?

Sử dụng THAM GIA trong SQL không có nghĩa là bạn chỉ có thể tham gia hai bảng. Bạn có thể tham gia 3, 4 hoặc thậm chí nhiều hơn. Các khả năng là vô hạn. 21-Apr-2020

Chúng ta có thể Union 3 bàn không?

Có thể kết hợp nhiều bảng thành một bảng lớn theo cả 3 cách. Như chúng ta đã thấy, hành vi của UNION trong SQL Server và UNION trong DAX trong Power BI là rất giống nhau. Ở đây các bảng có cùng số cột được đặt ngay dưới nhau. 01-Mar-2021

Tham gia bên trong và tham gia tự nhiên có giống nhau không?

1. Thao tác nối được sử dụng để hợp nhất hai bảng tùy thuộc vào cùng tên cột và kiểu dữ liệu của chúng được gọi là nối tự nhiên. Tham gia bên trong có một điều kiện tham gia cụ thể. Ở đây, thao tác nối được sử dụng để tạo một bảng mới bằng cách nối các giá trị cột của hai bảng dựa trên vị từ nối

Làm cách nào để tham gia 5 bảng trong SQL?

Cú pháp THAM GIA nhiều bảng

  • TỪ tên bảng1
  • THAM GIA bảng-name2 TRÊN cột-name1 = cột-name2
  • THAM GIA tên-bảng3 TRÊN tên-cột3 = tên-cột4
  • THAM GIA tên bảng 4 TRÊN tên cột = tên cột 6
  • điều kiện ở đâu

Làm cách nào tôi có thể tham gia ba bảng trong SQL mà không cần THAM GIA?

Cách tham gia các bảng trong SQL mà không cần sử dụng THAM GIA

  • Sử dụng dấu phẩy giữa các tên bảng trong mệnh đề TỪ và chỉ định điều kiện nối trong mệnh đề WHERE
  • Sử dụng UNION / UNION ALL

Làm thế nào để bạn tham gia bên trong nhiều hơn hai bảng?

Trước tiên, chúng tôi nối bảng 1 và bảng 2 để tạo ra một bảng tạm thời với dữ liệu kết hợp từ bảng 1 và bảng 2, sau đó được nối với bảng 3. Công thức này có thể được mở rộng cho hơn 3 bảng thành N bảng, Bạn chỉ cần đảm bảo rằng truy vấn SQL phải có N-1 câu lệnh nối để nối N bảng. 21-Feb-2013

Một tính năng thiết yếu được cung cấp bởi Pandas là các hoạt động kết hợp và hợp nhất trong bộ nhớ, hiệu suất cao của nó. Nếu bạn đã từng làm việc với cơ sở dữ liệu, bạn sẽ quen thuộc với kiểu tương tác dữ liệu này. Giao diện chính của chức năng này là hàm

df5 = pd.DataFrame({'group': ['Accounting', 'Accounting',
                              'Engineering', 'Engineering', 'HR', 'HR'],
                    'skills': ['math', 'spreadsheets', 'coding', 'linux',
                               'spreadsheets', 'organization']})
display('df1', 'df5', "pd.merge(df1, df5)")
0 và chúng ta sẽ xem một vài ví dụ về cách thức hoạt động của nó trong thực tế

Để thuận tiện, chúng tôi sẽ bắt đầu bằng cách xác định lại chức năng của

df5 = pd.DataFrame({'group': ['Accounting', 'Accounting',
                              'Engineering', 'Engineering', 'HR', 'HR'],
                    'skills': ['math', 'spreadsheets', 'coding', 'linux',
                               'spreadsheets', 'organization']})
display('df1', 'df5', "pd.merge(df1, df5)")
1 từ phần trước

Trong 1]

import pandas as pd
import numpy as np

class display(object):
    """Display HTML representation of multiple objects"""
    template = """

{0}

{1}
"""
def __init__(self, *args): self.args = args def _repr_html_(self): return '\n'.join(self.template.format(a, eval(a)._repr_html_()) for a in self.args) def __repr__(self): return '\n\n'.join(a + '\n' + repr(eval(a)) for a in self.args)

Đại số quan hệ¶

Hành vi được triển khai trong

df5 = pd.DataFrame({'group': ['Accounting', 'Accounting',
                              'Engineering', 'Engineering', 'HR', 'HR'],
                    'skills': ['math', 'spreadsheets', 'coding', 'linux',
                               'spreadsheets', 'organization']})
display('df1', 'df5', "pd.merge(df1, df5)")
2 là một tập hợp con của cái được gọi là đại số quan hệ, là một bộ quy tắc chính thức để thao tác dữ liệu quan hệ và tạo thành nền tảng khái niệm của các hoạt động có sẵn trong hầu hết các cơ sở dữ liệu. Điểm mạnh của phương pháp đại số quan hệ là nó đề xuất một số phép toán nguyên thủy, chúng trở thành nền tảng của các phép toán phức tạp hơn trên bất kỳ tập dữ liệu nào. Với từ vựng về các hoạt động cơ bản này được triển khai hiệu quả trong cơ sở dữ liệu hoặc chương trình khác, có thể thực hiện một loạt các hoạt động tổng hợp khá phức tạp

Pandas triển khai một số khối xây dựng cơ bản này trong hàm

df5 = pd.DataFrame({'group': ['Accounting', 'Accounting',
                              'Engineering', 'Engineering', 'HR', 'HR'],
                    'skills': ['math', 'spreadsheets', 'coding', 'linux',
                               'spreadsheets', 'organization']})
display('df1', 'df5', "pd.merge(df1, df5)")
2 và phương thức
df5 = pd.DataFrame({'group': ['Accounting', 'Accounting',
                              'Engineering', 'Engineering', 'HR', 'HR'],
                    'skills': ['math', 'spreadsheets', 'coding', 'linux',
                               'spreadsheets', 'organization']})
display('df1', 'df5', "pd.merge(df1, df5)")
4 có liên quan của
df5 = pd.DataFrame({'group': ['Accounting', 'Accounting',
                              'Engineering', 'Engineering', 'HR', 'HR'],
                    'skills': ['math', 'spreadsheets', 'coding', 'linux',
                               'spreadsheets', 'organization']})
display('df1', 'df5', "pd.merge(df1, df5)")
5 và
df5 = pd.DataFrame({'group': ['Accounting', 'Accounting',
                              'Engineering', 'Engineering', 'HR', 'HR'],
                    'skills': ['math', 'spreadsheets', 'coding', 'linux',
                               'spreadsheets', 'organization']})
display('df1', 'df5', "pd.merge(df1, df5)")
6. Như chúng ta sẽ thấy, chúng cho phép bạn liên kết dữ liệu từ các nguồn khác nhau một cách hiệu quả

Danh mục tham gia¶

Hàm

df5 = pd.DataFrame({'group': ['Accounting', 'Accounting',
                              'Engineering', 'Engineering', 'HR', 'HR'],
                    'skills': ['math', 'spreadsheets', 'coding', 'linux',
                               'spreadsheets', 'organization']})
display('df1', 'df5', "pd.merge(df1, df5)")
2 thực hiện một số loại liên kết. phép nối một đối một, nhiều đối một và nhiều đối nhiều. Tất cả ba loại liên kết được truy cập thông qua một cuộc gọi giống hệt nhau tới giao diện
df5 = pd.DataFrame({'group': ['Accounting', 'Accounting',
                              'Engineering', 'Engineering', 'HR', 'HR'],
                    'skills': ['math', 'spreadsheets', 'coding', 'linux',
                               'spreadsheets', 'organization']})
display('df1', 'df5', "pd.merge(df1, df5)")
2; . Ở đây chúng tôi sẽ hiển thị các ví dụ đơn giản về ba loại hợp nhất và thảo luận thêm về các tùy chọn chi tiết bên dưới

Tham gia trực tiếp¶

Có lẽ kiểu diễn giải hợp nhất đơn giản nhất là phép nối một đối một, theo nhiều cách rất giống với phép nối theo cột được thấy trong Kết hợp Bộ dữ liệu. Concat và Append. Như một ví dụ cụ thể, hãy xem xét hai

df5 = pd.DataFrame({'group': ['Accounting', 'Accounting',
                              'Engineering', 'Engineering', 'HR', 'HR'],
                    'skills': ['math', 'spreadsheets', 'coding', 'linux',
                               'spreadsheets', 'organization']})
display('df1', 'df5', "pd.merge(df1, df5)")
9 sau đây chứa thông tin về một số nhân viên trong một công ty

Trong 2]

df5 = pd.DataFrame({'group': ['Accounting', 'Accounting',
                              'Engineering', 'Engineering', 'HR', 'HR'],
                    'skills': ['math', 'spreadsheets', 'coding', 'linux',
                               'spreadsheets', 'organization']})
display('df1', 'df5', "pd.merge(df1, df5)")
2

Ra[2]

df1

nhóm nhân viên0Kế toán Bob1JakeKỹ thuật2LisaKỹ thuật3SueHR

df2

employeehire_date0Lisa20041Bob20082Jake20123Sue2014

Để kết hợp thông tin này thành một

df5 = pd.DataFrame({'group': ['Accounting', 'Accounting',
                              'Engineering', 'Engineering', 'HR', 'HR'],
                    'skills': ['math', 'spreadsheets', 'coding', 'linux',
                               'spreadsheets', 'organization']})
display('df1', 'df5', "pd.merge(df1, df5)")
30 duy nhất, chúng ta có thể sử dụng hàm
df5 = pd.DataFrame({'group': ['Accounting', 'Accounting',
                              'Engineering', 'Engineering', 'HR', 'HR'],
                    'skills': ['math', 'spreadsheets', 'coding', 'linux',
                               'spreadsheets', 'organization']})
display('df1', 'df5', "pd.merge(df1, df5)")
2

Trong 3]

df5 = pd.DataFrame({'group': ['Accounting', 'Accounting',
                              'Engineering', 'Engineering', 'HR', 'HR'],
                    'skills': ['math', 'spreadsheets', 'coding', 'linux',
                               'spreadsheets', 'organization']})
display('df1', 'df5', "pd.merge(df1, df5)")
5

Ra[3]

employeegrouphire_date0BobAccounting20081JakeEngineering20122LisaEngineering20043SueHR2014

Hàm

df5 = pd.DataFrame({'group': ['Accounting', 'Accounting',
                              'Engineering', 'Engineering', 'HR', 'HR'],
                    'skills': ['math', 'spreadsheets', 'coding', 'linux',
                               'spreadsheets', 'organization']})
display('df1', 'df5', "pd.merge(df1, df5)")
2 nhận ra rằng mỗi
df5 = pd.DataFrame({'group': ['Accounting', 'Accounting',
                              'Engineering', 'Engineering', 'HR', 'HR'],
                    'skills': ['math', 'spreadsheets', 'coding', 'linux',
                               'spreadsheets', 'organization']})
display('df1', 'df5', "pd.merge(df1, df5)")
30 có một cột "nhân viên" và tự động tham gia bằng cách sử dụng cột này làm khóa. Kết quả của việc hợp nhất là một
df5 = pd.DataFrame({'group': ['Accounting', 'Accounting',
                              'Engineering', 'Engineering', 'HR', 'HR'],
                    'skills': ['math', 'spreadsheets', 'coding', 'linux',
                               'spreadsheets', 'organization']})
display('df1', 'df5', "pd.merge(df1, df5)")
30 mới kết hợp thông tin từ hai đầu vào. Lưu ý rằng thứ tự các mục trong mỗi cột không nhất thiết phải được duy trì. trong trường hợp này, thứ tự của cột "nhân viên" khác nhau giữa
df5 = pd.DataFrame({'group': ['Accounting', 'Accounting',
                              'Engineering', 'Engineering', 'HR', 'HR'],
                    'skills': ['math', 'spreadsheets', 'coding', 'linux',
                               'spreadsheets', 'organization']})
display('df1', 'df5', "pd.merge(df1, df5)")
35 và
df5 = pd.DataFrame({'group': ['Accounting', 'Accounting',
                              'Engineering', 'Engineering', 'HR', 'HR'],
                    'skills': ['math', 'spreadsheets', 'coding', 'linux',
                               'spreadsheets', 'organization']})
display('df1', 'df5', "pd.merge(df1, df5)")
36 và hàm
df5 = pd.DataFrame({'group': ['Accounting', 'Accounting',
                              'Engineering', 'Engineering', 'HR', 'HR'],
                    'skills': ['math', 'spreadsheets', 'coding', 'linux',
                               'spreadsheets', 'organization']})
display('df1', 'df5', "pd.merge(df1, df5)")
2 giải thích chính xác điều này. Ngoài ra, hãy nhớ rằng việc hợp nhất nói chung loại bỏ chỉ mục, ngoại trừ trường hợp đặc biệt hợp nhất theo chỉ mục (xem từ khóa
df5 = pd.DataFrame({'group': ['Accounting', 'Accounting',
                              'Engineering', 'Engineering', 'HR', 'HR'],
                    'skills': ['math', 'spreadsheets', 'coding', 'linux',
                               'spreadsheets', 'organization']})
display('df1', 'df5', "pd.merge(df1, df5)")
38 và
df5 = pd.DataFrame({'group': ['Accounting', 'Accounting',
                              'Engineering', 'Engineering', 'HR', 'HR'],
                    'skills': ['math', 'spreadsheets', 'coding', 'linux',
                               'spreadsheets', 'organization']})
display('df1', 'df5', "pd.merge(df1, df5)")
39, được thảo luận trong giây lát)

Liên kết nhiều người¶

Phép nối nhiều-một là phép nối trong đó một trong hai cột chính chứa các mục nhập trùng lặp. Đối với trường hợp nhiều-một, kết quả

df5 = pd.DataFrame({'group': ['Accounting', 'Accounting',
                              'Engineering', 'Engineering', 'HR', 'HR'],
                    'skills': ['math', 'spreadsheets', 'coding', 'linux',
                               'spreadsheets', 'organization']})
display('df1', 'df5', "pd.merge(df1, df5)")
30 sẽ giữ nguyên các mục nhập trùng lặp đó khi thích hợp. Xem xét ví dụ sau về liên kết nhiều-một

Trong [4]

df5 = pd.DataFrame({'group': ['Accounting', 'Accounting',
                              'Engineering', 'Engineering', 'HR', 'HR'],
                    'skills': ['math', 'spreadsheets', 'coding', 'linux',
                               'spreadsheets', 'organization']})
display('df1', 'df5', "pd.merge(df1, df5)")
5

Ra[4]

df3

employeegrouphire_date0BobAccounting20081JakeEngineering20122LisaEngineering20043SueHR2014

df4

nhómgiám sát0Kế toánCarly1Kỹ thuậtHướng dẫn2HRSteve

pd. hợp nhất (df3, df4)

employeegrouphire_datesupervisor0BobAccounting2008Carly1JakeEngineering2012Guido2LisaEngineering2004Guido3SueHR2014Steve

Kết quả

df5 = pd.DataFrame({'group': ['Accounting', 'Accounting',
                              'Engineering', 'Engineering', 'HR', 'HR'],
                    'skills': ['math', 'spreadsheets', 'coding', 'linux',
                               'spreadsheets', 'organization']})
display('df1', 'df5', "pd.merge(df1, df5)")
30 có một cột bổ sung với thông tin "người giám sát", trong đó thông tin được lặp lại ở một hoặc nhiều vị trí theo yêu cầu của đầu vào

Liên kết nhiều-nhiều¶

Các phép nối nhiều-nhiều hơi khó hiểu về mặt khái niệm, nhưng vẫn được xác định rõ ràng. Nếu cột khóa trong cả mảng bên trái và bên phải chứa các cột trùng lặp, thì kết quả là hợp nhất nhiều-nhiều. Điều này có lẽ sẽ rõ ràng nhất với một ví dụ cụ thể. Hãy xem xét những điều sau đây, nơi chúng tôi có một

df5 = pd.DataFrame({'group': ['Accounting', 'Accounting',
                              'Engineering', 'Engineering', 'HR', 'HR'],
                    'skills': ['math', 'spreadsheets', 'coding', 'linux',
                               'spreadsheets', 'organization']})
display('df1', 'df5', "pd.merge(df1, df5)")
30 thể hiện một hoặc nhiều kỹ năng liên quan đến một nhóm cụ thể. Bằng cách thực hiện liên kết nhiều-nhiều, chúng tôi có thể khôi phục các kỹ năng liên quan đến bất kỳ cá nhân nào

Trong [5]

df5 = pd.DataFrame({'group': ['Accounting', 'Accounting',
                              'Engineering', 'Engineering', 'HR', 'HR'],
                    'skills': ['math', 'spreadsheets', 'coding', 'linux',
                               'spreadsheets', 'organization']})
display('df1', 'df5', "pd.merge(df1, df5)")

Ra[5]

df1

nhóm nhân viên0Kế toán Bob1JakeKỹ thuật2LisaKỹ thuật3SueHR

df5

kỹ năng nhóm0Kế toán toán1Bảng tính kế toán2Kỹ thuật viết mã3Kỹ thuật linux4Bảng tính nhân sự5Tổ chức nhân sự

pd. hợp nhất (df1, df5)

nhóm nhân viênkỹ năng0BobKế toántoán học1BobBảng tính kế toán2JakeMã hóa kỹ thuật3JakeKỹ thuật linux4LisaMã hóa kỹ thuật5LisaEngineeringlinux6SueBảng tính nhân sự7SueHRTổ chức

Ba loại liên kết này có thể được sử dụng với các công cụ Pandas khác để triển khai nhiều chức năng. Nhưng trên thực tế, các bộ dữ liệu hiếm khi rõ ràng như bộ dữ liệu chúng tôi đang làm việc ở đây. Trong phần sau, chúng ta sẽ xem xét một số tùy chọn được cung cấp bởi

df5 = pd.DataFrame({'group': ['Accounting', 'Accounting',
                              'Engineering', 'Engineering', 'HR', 'HR'],
                    'skills': ['math', 'spreadsheets', 'coding', 'linux',
                               'spreadsheets', 'organization']})
display('df1', 'df5', "pd.merge(df1, df5)")
2 cho phép bạn điều chỉnh cách thức hoạt động của các thao tác nối

Thông số kỹ thuật của Khóa hợp nhất¶

Chúng ta đã thấy hành vi mặc định của

df5 = pd.DataFrame({'group': ['Accounting', 'Accounting',
                              'Engineering', 'Engineering', 'HR', 'HR'],
                    'skills': ['math', 'spreadsheets', 'coding', 'linux',
                               'spreadsheets', 'organization']})
display('df1', 'df5', "pd.merge(df1, df5)")
2. nó tìm kiếm một hoặc nhiều tên cột phù hợp giữa hai đầu vào và sử dụng tên này làm khóa. Tuy nhiên, thường thì các tên cột sẽ không khớp nhau lắm và
df5 = pd.DataFrame({'group': ['Accounting', 'Accounting',
                              'Engineering', 'Engineering', 'HR', 'HR'],
                    'skills': ['math', 'spreadsheets', 'coding', 'linux',
                               'spreadsheets', 'organization']})
display('df1', 'df5', "pd.merge(df1, df5)")
2 cung cấp nhiều tùy chọn để xử lý việc này

Từ khóa import pandas as pd import numpy as np class display(object): """Display HTML representation of multiple objects""" template = """

{0}

{1}
""" def __init__(self, *args): self.args = args def _repr_html_(self): return '\n'.join(self.template.format(a, eval(a)._repr_html_()) for a in self.args) def __repr__(self): return '\n\n'.join(a + '\n' + repr(eval(a)) for a in self.args) 26¶

Đơn giản nhất, bạn có thể chỉ định rõ ràng tên của cột chính bằng cách sử dụng từ khóa

import pandas as pd
import numpy as np

class display(object):
    """Display HTML representation of multiple objects"""
    template = """

{0}

{1}
"""
def __init__(self, *args): self.args = args def _repr_html_(self): return '\n'.join(self.template.format(a, eval(a)._repr_html_()) for a in self.args) def __repr__(self): return '\n\n'.join(a + '\n' + repr(eval(a)) for a in self.args)
26, lấy tên cột hoặc danh sách tên cột

Trong [6]

df5 = pd.DataFrame({'group': ['Accounting', 'Accounting',
                              'Engineering', 'Engineering', 'HR', 'HR'],
                    'skills': ['math', 'spreadsheets', 'coding', 'linux',
                               'spreadsheets', 'organization']})
display('df1', 'df5', "pd.merge(df1, df5)")
3

Ra[6]

df1

nhóm nhân viên0Kế toán Bob1JakeKỹ thuật2LisaKỹ thuật3SueHR

df2

employeehire_date0Lisa20041Bob20082Jake20123Sue2014

pd. hợp nhất (df1, df2, on='nhân viên')

employeegrouphire_date0BobAccounting20081JakeEngineering20122LisaEngineering20043SueHR2014

Tùy chọn này chỉ hoạt động nếu cả

df5 = pd.DataFrame({'group': ['Accounting', 'Accounting',
                              'Engineering', 'Engineering', 'HR', 'HR'],
                    'skills': ['math', 'spreadsheets', 'coding', 'linux',
                               'spreadsheets', 'organization']})
display('df1', 'df5', "pd.merge(df1, df5)")
30 bên trái và bên phải đều có tên cột được chỉ định

Từ khóa import pandas as pd import numpy as np class display(object): """Display HTML representation of multiple objects""" template = """

{0}

{1}
""" def __init__(self, *args): self.args = args def _repr_html_(self): return '\n'.join(self.template.format(a, eval(a)._repr_html_()) for a in self.args) def __repr__(self): return '\n\n'.join(a + '\n' + repr(eval(a)) for a in self.args) 29 và import pandas as pd import numpy as np class display(object): """Display HTML representation of multiple objects""" template = """

{0}

{1}
""" def __init__(self, *args): self.args = args def _repr_html_(self): return '\n'.join(self.template.format(a, eval(a)._repr_html_()) for a in self.args) def __repr__(self): return '\n\n'.join(a + '\n' + repr(eval(a)) for a in self.args) 70¶

Đôi khi, bạn có thể muốn hợp nhất hai bộ dữ liệu với các tên cột khác nhau; . Trong trường hợp này, chúng ta có thể sử dụng từ khóa

import pandas as pd
import numpy as np

class display(object):
    """Display HTML representation of multiple objects"""
    template = """

{0}

{1}
"""
def __init__(self, *args): self.args = args def _repr_html_(self): return '\n'.join(self.template.format(a, eval(a)._repr_html_()) for a in self.args) def __repr__(self): return '\n\n'.join(a + '\n' + repr(eval(a)) for a in self.args)
29 và
import pandas as pd
import numpy as np

class display(object):
    """Display HTML representation of multiple objects"""
    template = """

{0}

{1}
"""
def __init__(self, *args): self.args = args def _repr_html_(self): return '\n'.join(self.template.format(a, eval(a)._repr_html_()) for a in self.args) def __repr__(self): return '\n\n'.join(a + '\n' + repr(eval(a)) for a in self.args)
70 để chỉ định tên hai cột

Trong [7]

import pandas as pd
import numpy as np

class display(object):
    """Display HTML representation of multiple objects"""
    template = """

{0}

{1}
"""
def __init__(self, *args): self.args = args def _repr_html_(self): return '\n'.join(self.template.format(a, eval(a)._repr_html_()) for a in self.args) def __repr__(self): return '\n\n'.join(a + '\n' + repr(eval(a)) for a in self.args)
2

Ra[7]

df1

nhóm nhân viên0Kế toán Bob1JakeKỹ thuật2LisaKỹ thuật3SueHR

df3

tênlương0Bob700001Jake800002Lisa1200003Sue90000

pd. hợp nhất(df1, df3, left_on="nhân viên", right_on="tên")

nhân viênnhómtênlương0BobKế toánBob700001JakeKỹ thuậtJake800002LisaKỹ thuậtLisa1200003SueHRSue90000

Kết quả có một cột dư thừa mà chúng ta có thể loại bỏ nếu muốn–ví dụ: bằng cách sử dụng phương pháp

import pandas as pd
import numpy as np

class display(object):
    """Display HTML representation of multiple objects"""
    template = """

{0}

{1}
"""
def __init__(self, *args): self.args = args def _repr_html_(self): return '\n'.join(self.template.format(a, eval(a)._repr_html_()) for a in self.args) def __repr__(self): return '\n\n'.join(a + '\n' + repr(eval(a)) for a in self.args)
73 của
df5 = pd.DataFrame({'group': ['Accounting', 'Accounting',
                              'Engineering', 'Engineering', 'HR', 'HR'],
                    'skills': ['math', 'spreadsheets', 'coding', 'linux',
                               'spreadsheets', 'organization']})
display('df1', 'df5', "pd.merge(df1, df5)")
30s

Trong [8]

import pandas as pd
import numpy as np

class display(object):
    """Display HTML representation of multiple objects"""
    template = """

{0}

{1}
"""
def __init__(self, *args): self.args = args def _repr_html_(self): return '\n'.join(self.template.format(a, eval(a)._repr_html_()) for a in self.args) def __repr__(self): return '\n\n'.join(a + '\n' + repr(eval(a)) for a in self.args)
7

Ra[8]

nhân viênnhóm lương0BobKế toán700001JakeEngineering800002LisaEngineering1200003SueHR90000

Từ khóa df5 = pd.DataFrame({'group': ['Accounting', 'Accounting', 'Engineering', 'Engineering', 'HR', 'HR'], 'skills': ['math', 'spreadsheets', 'coding', 'linux', 'spreadsheets', 'organization']}) display('df1', 'df5', "pd.merge(df1, df5)") 38 và df5 = pd.DataFrame({'group': ['Accounting', 'Accounting', 'Engineering', 'Engineering', 'HR', 'HR'], 'skills': ['math', 'spreadsheets', 'coding', 'linux', 'spreadsheets', 'organization']}) display('df1', 'df5', "pd.merge(df1, df5)") 39¶

Đôi khi, thay vì hợp nhất trên một cột, bạn muốn hợp nhất trên một chỉ mục. Ví dụ: dữ liệu của bạn có thể trông như thế này

Trong [9]

df5 = pd.DataFrame({'group': ['Accounting', 'Accounting',
                              'Engineering', 'Engineering', 'HR', 'HR'],
                    'skills': ['math', 'spreadsheets', 'coding', 'linux',
                               'spreadsheets', 'organization']})
display('df1', 'df5', "pd.merge(df1, df5)")
6

Ra[9]

df1a

nhómnhân viênBobKế toánJakeEngineeringLisaEngineeringSueHR

df2a

thuê_dateemployeeLisa2004Bob2008Jake2012Sue2014

Bạn có thể sử dụng chỉ mục làm khóa để hợp nhất bằng cách chỉ định cờ

df5 = pd.DataFrame({'group': ['Accounting', 'Accounting',
                              'Engineering', 'Engineering', 'HR', 'HR'],
                    'skills': ['math', 'spreadsheets', 'coding', 'linux',
                               'spreadsheets', 'organization']})
display('df1', 'df5', "pd.merge(df1, df5)")
38 và/hoặc
df5 = pd.DataFrame({'group': ['Accounting', 'Accounting',
                              'Engineering', 'Engineering', 'HR', 'HR'],
                    'skills': ['math', 'spreadsheets', 'coding', 'linux',
                               'spreadsheets', 'organization']})
display('df1', 'df5', "pd.merge(df1, df5)")
39 trong
df5 = pd.DataFrame({'group': ['Accounting', 'Accounting',
                              'Engineering', 'Engineering', 'HR', 'HR'],
                    'skills': ['math', 'spreadsheets', 'coding', 'linux',
                               'spreadsheets', 'organization']})
display('df1', 'df5', "pd.merge(df1, df5)")
2

Trong [10]

df5 = pd.DataFrame({'group': ['Accounting', 'Accounting',
                              'Engineering', 'Engineering', 'HR', 'HR'],
                    'skills': ['math', 'spreadsheets', 'coding', 'linux',
                               'spreadsheets', 'organization']})
display('df1', 'df5', "pd.merge(df1, df5)")
0

Ra[10]

df1a

nhómnhân viênBobKế toánJakeEngineeringLisaEngineeringSueHR

df2a

thuê_dateemployeeLisa2004Bob2008Jake2012Sue2014

pd. hợp nhất (df1a, df2a, left_index=True, right_index=True)

grouphire_dateemployeeLisaEngineering2004BobAccounting2008JakeEngineering2012SueHR2014

Để thuận tiện,

df5 = pd.DataFrame({'group': ['Accounting', 'Accounting',
                              'Engineering', 'Engineering', 'HR', 'HR'],
                    'skills': ['math', 'spreadsheets', 'coding', 'linux',
                               'spreadsheets', 'organization']})
display('df1', 'df5', "pd.merge(df1, df5)")
30 triển khai phương thức
df5 = pd.DataFrame({'group': ['Accounting', 'Accounting',
                              'Engineering', 'Engineering', 'HR', 'HR'],
                    'skills': ['math', 'spreadsheets', 'coding', 'linux',
                               'spreadsheets', 'organization']})
display('df1', 'df5', "pd.merge(df1, df5)")
4, thực hiện hợp nhất mặc định để tham gia trên các chỉ số

Trong [11]

df5 = pd.DataFrame({'group': ['Accounting', 'Accounting',
                              'Engineering', 'Engineering', 'HR', 'HR'],
                    'skills': ['math', 'spreadsheets', 'coding', 'linux',
                               'spreadsheets', 'organization']})
display('df1', 'df5', "pd.merge(df1, df5)")
20

Ra[11]

df1a

nhómnhân viênBobKế toánJakeEngineeringLisaEngineeringSueHR

df2a

thuê_dateemployeeLisa2004Bob2008Jake2012Sue2014

df1a. tham gia (df2a)

grouphire_dateemployeeBobAccounting2008JakeEngineering2012LisaEngineering2004SueHR2014

Nếu bạn muốn kết hợp các chỉ số và cột, bạn có thể kết hợp

df5 = pd.DataFrame({'group': ['Accounting', 'Accounting',
                              'Engineering', 'Engineering', 'HR', 'HR'],
                    'skills': ['math', 'spreadsheets', 'coding', 'linux',
                               'spreadsheets', 'organization']})
display('df1', 'df5', "pd.merge(df1, df5)")
38 với
import pandas as pd
import numpy as np

class display(object):
    """Display HTML representation of multiple objects"""
    template = """

{0}

{1}
"""
def __init__(self, *args): self.args = args def _repr_html_(self): return '\n'.join(self.template.format(a, eval(a)._repr_html_()) for a in self.args) def __repr__(self): return '\n\n'.join(a + '\n' + repr(eval(a)) for a in self.args)
70 hoặc
import pandas as pd
import numpy as np

class display(object):
    """Display HTML representation of multiple objects"""
    template = """

{0}

{1}
"""
def __init__(self, *args): self.args = args def _repr_html_(self): return '\n'.join(self.template.format(a, eval(a)._repr_html_()) for a in self.args) def __repr__(self): return '\n\n'.join(a + '\n' + repr(eval(a)) for a in self.args)
29 với
df5 = pd.DataFrame({'group': ['Accounting', 'Accounting',
                              'Engineering', 'Engineering', 'HR', 'HR'],
                    'skills': ['math', 'spreadsheets', 'coding', 'linux',
                               'spreadsheets', 'organization']})
display('df1', 'df5', "pd.merge(df1, df5)")
39 để có được hành vi mong muốn

Trong [12]

df5 = pd.DataFrame({'group': ['Accounting', 'Accounting',
                              'Engineering', 'Engineering', 'HR', 'HR'],
                    'skills': ['math', 'spreadsheets', 'coding', 'linux',
                               'spreadsheets', 'organization']})
display('df1', 'df5', "pd.merge(df1, df5)")
21

Ra[12]

df1a

nhómnhân viênBobKế toánJakeEngineeringLisaEngineeringSueHR

df3

tênlương0Bob700001Jake800002Lisa1200003Sue90000

pd. hợp nhất (df1a, df3, left_index=True, right_on='name')

tên nhómlương0Kế toánBob700001Kỹ thuậtJake800002Kỹ thuậtLisa1200003HRSue90000

Tất cả các tùy chọn này cũng hoạt động với nhiều chỉ mục và/hoặc nhiều cột; . Để biết thêm thông tin về điều này, hãy xem phần "Hợp nhất, Tham gia và Ghép nối" trong tài liệu Pandas

Chỉ định Set Arithmetic cho Joins¶

Trong tất cả các ví dụ trước, chúng tôi đã đề cập đến một vấn đề quan trọng cần cân nhắc khi thực hiện phép nối. loại tập hợp số học được sử dụng trong phép nối. Điều này xuất hiện khi một giá trị xuất hiện trong một cột chính nhưng không xuất hiện trong cột khác. Hãy xem xét ví dụ này

Trong [13]

df5 = pd.DataFrame({'group': ['Accounting', 'Accounting',
                              'Engineering', 'Engineering', 'HR', 'HR'],
                    'skills': ['math', 'spreadsheets', 'coding', 'linux',
                               'spreadsheets', 'organization']})
display('df1', 'df5', "pd.merge(df1, df5)")
22

Ra[13]

df6

tênmón ăn0Cá Peter 1Đậu Paul 2Bánh mì Mary

df7

uống tên0Marywine1Josephbeer

pd. hợp nhất (df6, df7)

tênthực phẩmđồ uống0Marybreadwine

Ở đây, chúng tôi đã hợp nhất hai bộ dữ liệu chỉ có một mục nhập "tên" chung. ma-ri-a. Theo mặc định, kết quả chứa giao điểm của hai bộ đầu vào; . Chúng tôi có thể chỉ định điều này một cách rõ ràng bằng cách sử dụng từ khóa

df5 = pd.DataFrame({'group': ['Accounting', 'Accounting',
                              'Engineering', 'Engineering', 'HR', 'HR'],
                    'skills': ['math', 'spreadsheets', 'coding', 'linux',
                               'spreadsheets', 'organization']})
display('df1', 'df5', "pd.merge(df1, df5)")
66, mặc định là
df5 = pd.DataFrame({'group': ['Accounting', 'Accounting',
                              'Engineering', 'Engineering', 'HR', 'HR'],
                    'skills': ['math', 'spreadsheets', 'coding', 'linux',
                               'spreadsheets', 'organization']})
display('df1', 'df5', "pd.merge(df1, df5)")
67

Trong [14]

df5 = pd.DataFrame({'group': ['Accounting', 'Accounting',
                              'Engineering', 'Engineering', 'HR', 'HR'],
                    'skills': ['math', 'spreadsheets', 'coding', 'linux',
                               'spreadsheets', 'organization']})
display('df1', 'df5', "pd.merge(df1, df5)")
23

Ra[14]

tênthực phẩmđồ uống0Marybreadwine

Các tùy chọn khác cho từ khóa

df5 = pd.DataFrame({'group': ['Accounting', 'Accounting',
                              'Engineering', 'Engineering', 'HR', 'HR'],
                    'skills': ['math', 'spreadsheets', 'coding', 'linux',
                               'spreadsheets', 'organization']})
display('df1', 'df5', "pd.merge(df1, df5)")
66 là
df5 = pd.DataFrame({'group': ['Accounting', 'Accounting',
                              'Engineering', 'Engineering', 'HR', 'HR'],
                    'skills': ['math', 'spreadsheets', 'coding', 'linux',
                               'spreadsheets', 'organization']})
display('df1', 'df5', "pd.merge(df1, df5)")
69,
df5 = pd.DataFrame({'group': ['Accounting', 'Accounting',
                              'Engineering', 'Engineering', 'HR', 'HR'],
                    'skills': ['math', 'spreadsheets', 'coding', 'linux',
                               'spreadsheets', 'organization']})
display('df1', 'df5', "pd.merge(df1, df5)")
00 và
df5 = pd.DataFrame({'group': ['Accounting', 'Accounting',
                              'Engineering', 'Engineering', 'HR', 'HR'],
                    'skills': ['math', 'spreadsheets', 'coding', 'linux',
                               'spreadsheets', 'organization']})
display('df1', 'df5', "pd.merge(df1, df5)")
01. Phép nối ngoài trả về phép nối qua phép nối của các cột đầu vào và điền vào tất cả các giá trị còn thiếu bằng NA

Trong [15]

df5 = pd.DataFrame({'group': ['Accounting', 'Accounting',
                              'Engineering', 'Engineering', 'HR', 'HR'],
                    'skills': ['math', 'spreadsheets', 'coding', 'linux',
                               'spreadsheets', 'organization']})
display('df1', 'df5', "pd.merge(df1, df5)")
24

Ra[15]

df6

tênmón ăn0Cá Peter 1Đậu Paul 2Bánh mì Mary

df7

uống tên0Marywine1Josephbeer

pd. hợp nhất (df6, df7, how='bên ngoài')

tênmón ănuống0PeterfishNaN1PaulbeansNaN2Rượu bánh mì Mary3JosephNaNbeer

Phép nối trái và phép nối phải return lần lượt nối qua các mục bên trái và mục bên phải. Ví dụ

Trong [16]

df5 = pd.DataFrame({'group': ['Accounting', 'Accounting',
                              'Engineering', 'Engineering', 'HR', 'HR'],
                    'skills': ['math', 'spreadsheets', 'coding', 'linux',
                               'spreadsheets', 'organization']})
display('df1', 'df5', "pd.merge(df1, df5)")
25

Ra[16]

df6

tênmón ăn0Cá Peter 1Đậu Paul 2Bánh mì Mary

df7

uống tên0Marywine1Josephbeer

pd. hợp nhất (df6, df7, how='left')

tênmón ănđồ uống0PeterfishNaN1PaulbeansNaN2Mary bánh mì rượu vang

Các hàng đầu ra bây giờ tương ứng với các mục trong đầu vào bên trái. Sử dụng

df5 = pd.DataFrame({'group': ['Accounting', 'Accounting',
                              'Engineering', 'Engineering', 'HR', 'HR'],
                    'skills': ['math', 'spreadsheets', 'coding', 'linux',
                               'spreadsheets', 'organization']})
display('df1', 'df5', "pd.merge(df1, df5)")
02 hoạt động theo cách tương tự

Tất cả các tùy chọn này có thể được áp dụng trực tiếp cho bất kỳ loại liên kết nào trước đó

Chồng chéo tên cột. Từ khóa df5 = pd.DataFrame({'group': ['Accounting', 'Accounting', 'Engineering', 'Engineering', 'HR', 'HR'], 'skills': ['math', 'spreadsheets', 'coding', 'linux', 'spreadsheets', 'organization']}) display('df1', 'df5', "pd.merge(df1, df5)") 03¶

Cuối cùng, bạn có thể rơi vào trường hợp hai

df5 = pd.DataFrame({'group': ['Accounting', 'Accounting',
                              'Engineering', 'Engineering', 'HR', 'HR'],
                    'skills': ['math', 'spreadsheets', 'coding', 'linux',
                               'spreadsheets', 'organization']})
display('df1', 'df5', "pd.merge(df1, df5)")
30 đầu vào của bạn có tên cột xung đột. Hãy xem xét ví dụ này

Trong [17]

df5 = pd.DataFrame({'group': ['Accounting', 'Accounting',
                              'Engineering', 'Engineering', 'HR', 'HR'],
                    'skills': ['math', 'spreadsheets', 'coding', 'linux',
                               'spreadsheets', 'organization']})
display('df1', 'df5', "pd.merge(df1, df5)")
26

Ra[17]

df8

tênrank0Bob11Jake22Lisa33Sue4

df9

tênrank0Bob31Jake12Lisa43Sue2

pd. hợp nhất (df8, df9, on="name")

namerank_xrank_y0Bob131Jake212Lisa343Sue42

Vì đầu ra sẽ có hai tên cột xung đột, nên hàm hợp nhất sẽ tự động nối thêm hậu tố

df5 = pd.DataFrame({'group': ['Accounting', 'Accounting',
                              'Engineering', 'Engineering', 'HR', 'HR'],
                    'skills': ['math', 'spreadsheets', 'coding', 'linux',
                               'spreadsheets', 'organization']})
display('df1', 'df5', "pd.merge(df1, df5)")
05 hoặc
df5 = pd.DataFrame({'group': ['Accounting', 'Accounting',
                              'Engineering', 'Engineering', 'HR', 'HR'],
                    'skills': ['math', 'spreadsheets', 'coding', 'linux',
                               'spreadsheets', 'organization']})
display('df1', 'df5', "pd.merge(df1, df5)")
06 để làm cho các cột đầu ra là duy nhất. Nếu các giá trị mặc định này không phù hợp, có thể chỉ định hậu tố tùy chỉnh bằng cách sử dụng từ khóa
df5 = pd.DataFrame({'group': ['Accounting', 'Accounting',
                              'Engineering', 'Engineering', 'HR', 'HR'],
                    'skills': ['math', 'spreadsheets', 'coding', 'linux',
                               'spreadsheets', 'organization']})
display('df1', 'df5', "pd.merge(df1, df5)")
03

Trong [18]

df5 = pd.DataFrame({'group': ['Accounting', 'Accounting',
                              'Engineering', 'Engineering', 'HR', 'HR'],
                    'skills': ['math', 'spreadsheets', 'coding', 'linux',
                               'spreadsheets', 'organization']})
display('df1', 'df5', "pd.merge(df1, df5)")
27

Hết[18]

df8

tênrank0Bob11Jake22Lisa33Sue4

df9

tênrank0Bob31Jake12Lisa43Sue2

pd. hợp nhất (df8, df9, on="name", suffixes=["_L", "_R"])

namerank_Lrank_R0Bob131Jake212Lisa343Sue42

Các hậu tố này hoạt động trong bất kỳ mẫu liên kết nào có thể có và cũng hoạt động nếu có nhiều cột chồng chéo

Để biết thêm thông tin về các mẫu này, hãy xem Tập hợp và Nhóm nơi chúng tôi tìm hiểu sâu hơn một chút về đại số quan hệ. Ngoài ra, hãy xem tài liệu "Hợp nhất, Tham gia và Ghép nối" của Pandas để thảo luận thêm về các chủ đề này

Thí dụ. Dữ liệu Hoa Kỳ¶

Các hoạt động hợp nhất và tham gia xuất hiện thường xuyên nhất khi kết hợp dữ liệu từ các nguồn khác nhau. Ở đây chúng tôi sẽ xem xét một ví dụ về một số dữ liệu về các tiểu bang Hoa Kỳ và dân số của họ. Các tệp dữ liệu có thể được tìm thấy tại http. //github. com/jakevdp/data-USstates/

Trong 19]

df5 = pd.DataFrame({'group': ['Accounting', 'Accounting',
                              'Engineering', 'Engineering', 'HR', 'HR'],
                    'skills': ['math', 'spreadsheets', 'coding', 'linux',
                               'spreadsheets', 'organization']})
display('df1', 'df5', "pd.merge(df1, df5)")
28

Chúng ta hãy xem xét ba bộ dữ liệu, sử dụng chức năng Pandas

df5 = pd.DataFrame({'group': ['Accounting', 'Accounting',
                              'Engineering', 'Engineering', 'HR', 'HR'],
                    'skills': ['math', 'spreadsheets', 'coding', 'linux',
                               'spreadsheets', 'organization']})
display('df1', 'df5', "pd.merge(df1, df5)")
08

Trong 20]

df5 = pd.DataFrame({'group': ['Accounting', 'Accounting',
                              'Engineering', 'Engineering', 'HR', 'HR'],
                    'skills': ['math', 'spreadsheets', 'coding', 'linux',
                               'spreadsheets', 'organization']})
display('df1', 'df5', "pd.merge(df1, df5)")
29

Hết[20]

nhạc pop. cái đầu()

bang/khu vựcnămdân số0ALunder1820121117489. 01ALtotal20124817528. 02ALunder1820101130966. 03ALtotal20104785570. 04ALunder1820111125763. 0

khu vực. cái đầu()

diện tích (sq. mi)0Alabama524231Alaska6564252Arizona1140063Arkansas531824California163707

viết tắt. cái đầu()

tiểu bang viết tắt0AlabamaAL1AlaskaAK2ArizonaAZ3ArkansasAR4CaliforniaCA

Với thông tin này, giả sử chúng tôi muốn tính toán một kết quả tương đối đơn giản. xếp hạng các bang và vùng lãnh thổ của Hoa Kỳ theo mật độ dân số năm 2010. Rõ ràng chúng tôi có dữ liệu ở đây để tìm kết quả này, nhưng chúng tôi sẽ phải kết hợp các bộ dữ liệu để tìm ra kết quả

Chúng tôi sẽ bắt đầu với sự hợp nhất nhiều thành một sẽ cung cấp cho chúng tôi tên đầy đủ của tiểu bang trong quần thể

df5 = pd.DataFrame({'group': ['Accounting', 'Accounting',
                              'Engineering', 'Engineering', 'HR', 'HR'],
                    'skills': ['math', 'spreadsheets', 'coding', 'linux',
                               'spreadsheets', 'organization']})
display('df1', 'df5', "pd.merge(df1, df5)")
30. Chúng tôi muốn hợp nhất dựa trên cột
df5 = pd.DataFrame({'group': ['Accounting', 'Accounting',
                              'Engineering', 'Engineering', 'HR', 'HR'],
                    'skills': ['math', 'spreadsheets', 'coding', 'linux',
                               'spreadsheets', 'organization']})
display('df1', 'df5', "pd.merge(df1, df5)")
200 của
df5 = pd.DataFrame({'group': ['Accounting', 'Accounting',
                              'Engineering', 'Engineering', 'HR', 'HR'],
                    'skills': ['math', 'spreadsheets', 'coding', 'linux',
                               'spreadsheets', 'organization']})
display('df1', 'df5', "pd.merge(df1, df5)")
201 và cột
df5 = pd.DataFrame({'group': ['Accounting', 'Accounting',
                              'Engineering', 'Engineering', 'HR', 'HR'],
                    'skills': ['math', 'spreadsheets', 'coding', 'linux',
                               'spreadsheets', 'organization']})
display('df1', 'df5', "pd.merge(df1, df5)")
202 của
df5 = pd.DataFrame({'group': ['Accounting', 'Accounting',
                              'Engineering', 'Engineering', 'HR', 'HR'],
                    'skills': ['math', 'spreadsheets', 'coding', 'linux',
                               'spreadsheets', 'organization']})
display('df1', 'df5', "pd.merge(df1, df5)")
203. Chúng tôi sẽ sử dụng
df5 = pd.DataFrame({'group': ['Accounting', 'Accounting',
                              'Engineering', 'Engineering', 'HR', 'HR'],
                    'skills': ['math', 'spreadsheets', 'coding', 'linux',
                               'spreadsheets', 'organization']})
display('df1', 'df5', "pd.merge(df1, df5)")
204 để đảm bảo không có dữ liệu nào bị loại bỏ do nhãn không khớp

Trong [21]

df5 = pd.DataFrame({'group': ['Accounting', 'Accounting',
                              'Engineering', 'Engineering', 'HR', 'HR'],
                    'skills': ['math', 'spreadsheets', 'coding', 'linux',
                               'spreadsheets', 'organization']})
display('df1', 'df5', "pd.merge(df1, df5)")
50

Hết[21]

tiểu bang/khu vực nămdân sốtiểu bang0ALunder1820121117489. 0Alabama1ALtotal20124817528. 0Alabama2ALunder1820101130966. 0Alabama3ALtotal20104785570. 0Alabama4ALunder1820111125763. 0Alabama

Hãy kiểm tra kỹ xem có bất kỳ sự không phù hợp nào ở đây hay không, điều mà chúng ta có thể thực hiện bằng cách tìm kiếm các hàng có giá trị rỗng

Trong [22]

df5 = pd.DataFrame({'group': ['Accounting', 'Accounting',
                              'Engineering', 'Engineering', 'HR', 'HR'],
                    'skills': ['math', 'spreadsheets', 'coding', 'linux',
                               'spreadsheets', 'organization']})
display('df1', 'df5', "pd.merge(df1, df5)")
51

Hết[22]

df5 = pd.DataFrame({'group': ['Accounting', 'Accounting',
                              'Engineering', 'Engineering', 'HR', 'HR'],
                    'skills': ['math', 'spreadsheets', 'coding', 'linux',
                               'spreadsheets', 'organization']})
display('df1', 'df5', "pd.merge(df1, df5)")
52

Một số thông tin

df5 = pd.DataFrame({'group': ['Accounting', 'Accounting',
                              'Engineering', 'Engineering', 'HR', 'HR'],
                    'skills': ['math', 'spreadsheets', 'coding', 'linux',
                               'spreadsheets', 'organization']})
display('df1', 'df5', "pd.merge(df1, df5)")
205 không có giá trị;

Trong [23]

df5 = pd.DataFrame({'group': ['Accounting', 'Accounting',
                              'Engineering', 'Engineering', 'HR', 'HR'],
                    'skills': ['math', 'spreadsheets', 'coding', 'linux',
                               'spreadsheets', 'organization']})
display('df1', 'df5', "pd.merge(df1, df5)")
53

Hết[23]

bang/khu vực nămdân sốbang2448PRunder181990NaNNaN2449PRtotal1990NaNNaN2450PRtotal1991NaNNaN2451PRunder181991NaNNaN2452PRtotal1993NaNNaN

Có vẻ như tất cả các giá trị dân số rỗng là từ Puerto Rico trước năm 2000;

Quan trọng hơn, chúng tôi cũng thấy rằng một số mục nhập mới của

df5 = pd.DataFrame({'group': ['Accounting', 'Accounting',
                              'Engineering', 'Engineering', 'HR', 'HR'],
                    'skills': ['math', 'spreadsheets', 'coding', 'linux',
                               'spreadsheets', 'organization']})
display('df1', 'df5', "pd.merge(df1, df5)")
206 cũng không có giá trị, điều đó có nghĩa là không có mục nhập tương ứng trong khóa
df5 = pd.DataFrame({'group': ['Accounting', 'Accounting',
                              'Engineering', 'Engineering', 'HR', 'HR'],
                    'skills': ['math', 'spreadsheets', 'coding', 'linux',
                               'spreadsheets', 'organization']})
display('df1', 'df5', "pd.merge(df1, df5)")
203. Hãy tìm xem khu vực nào thiếu trận đấu này

Trong [24]

df5 = pd.DataFrame({'group': ['Accounting', 'Accounting',
                              'Engineering', 'Engineering', 'HR', 'HR'],
                    'skills': ['math', 'spreadsheets', 'coding', 'linux',
                               'spreadsheets', 'organization']})
display('df1', 'df5', "pd.merge(df1, df5)")
54

Ra[24]

df5 = pd.DataFrame({'group': ['Accounting', 'Accounting',
                              'Engineering', 'Engineering', 'HR', 'HR'],
                    'skills': ['math', 'spreadsheets', 'coding', 'linux',
                               'spreadsheets', 'organization']})
display('df1', 'df5', "pd.merge(df1, df5)")
55

Chúng ta có thể nhanh chóng suy ra vấn đề. dữ liệu dân số của chúng tôi bao gồm các mục nhập cho Puerto Rico (PR) và toàn bộ Hoa Kỳ (USA), trong khi các mục nhập này không xuất hiện trong khóa viết tắt của tiểu bang. Chúng tôi có thể khắc phục những điều này một cách nhanh chóng bằng cách điền vào các mục thích hợp

Trong [25]

df5 = pd.DataFrame({'group': ['Accounting', 'Accounting',
                              'Engineering', 'Engineering', 'HR', 'HR'],
                    'skills': ['math', 'spreadsheets', 'coding', 'linux',
                               'spreadsheets', 'organization']})
display('df1', 'df5', "pd.merge(df1, df5)")
56

Hết[25]

df5 = pd.DataFrame({'group': ['Accounting', 'Accounting',
                              'Engineering', 'Engineering', 'HR', 'HR'],
                    'skills': ['math', 'spreadsheets', 'coding', 'linux',
                               'spreadsheets', 'organization']})
display('df1', 'df5', "pd.merge(df1, df5)")
57

Không còn null trong cột

df5 = pd.DataFrame({'group': ['Accounting', 'Accounting',
                              'Engineering', 'Engineering', 'HR', 'HR'],
                    'skills': ['math', 'spreadsheets', 'coding', 'linux',
                               'spreadsheets', 'organization']})
display('df1', 'df5', "pd.merge(df1, df5)")
206. chúng ta đã sẵn sàng

Bây giờ chúng ta có thể hợp nhất kết quả với dữ liệu vùng bằng quy trình tương tự. Kiểm tra kết quả của chúng tôi, chúng tôi sẽ muốn tham gia vào cột

df5 = pd.DataFrame({'group': ['Accounting', 'Accounting',
                              'Engineering', 'Engineering', 'HR', 'HR'],
                    'skills': ['math', 'spreadsheets', 'coding', 'linux',
                               'spreadsheets', 'organization']})
display('df1', 'df5', "pd.merge(df1, df5)")
206 trong cả hai

Trong [26]

df5 = pd.DataFrame({'group': ['Accounting', 'Accounting',
                              'Engineering', 'Engineering', 'HR', 'HR'],
                    'skills': ['math', 'spreadsheets', 'coding', 'linux',
                               'spreadsheets', 'organization']})
display('df1', 'df5', "pd.merge(df1, df5)")
58

Hết[26]

tiểu bang/khu vực nămdân số tiểu bangkhu vực (sq. mi)0ALunder1820121117489. 0Alabama52423. 01ALtotal20124817528. 0Alabama52423. 02ALunder1820101130966. 0Alabama52423. 03ALtotal20104785570. 0Alabama52423. 04ALunder1820111125763. 0Alabama52423. 0

Một lần nữa, hãy kiểm tra null để xem liệu có bất kỳ sự không phù hợp nào không

Trong [27]

df5 = pd.DataFrame({'group': ['Accounting', 'Accounting',
                              'Engineering', 'Engineering', 'HR', 'HR'],
                    'skills': ['math', 'spreadsheets', 'coding', 'linux',
                               'spreadsheets', 'organization']})
display('df1', 'df5', "pd.merge(df1, df5)")
59

Hết[27]

df5 = pd.DataFrame({'group': ['Accounting', 'Accounting',
                              'Engineering', 'Engineering', 'HR', 'HR'],
                    'skills': ['math', 'spreadsheets', 'coding', 'linux',
                               'spreadsheets', 'organization']})
display('df1', 'df5', "pd.merge(df1, df5)")
50

Không có giá trị rỗng trong cột

df5 = pd.DataFrame({'group': ['Accounting', 'Accounting',
                              'Engineering', 'Engineering', 'HR', 'HR'],
                    'skills': ['math', 'spreadsheets', 'coding', 'linux',
                               'spreadsheets', 'organization']})
display('df1', 'df5', "pd.merge(df1, df5)")
210;

Trong [28]

df5 = pd.DataFrame({'group': ['Accounting', 'Accounting',
                              'Engineering', 'Engineering', 'HR', 'HR'],
                    'skills': ['math', 'spreadsheets', 'coding', 'linux',
                               'spreadsheets', 'organization']})
display('df1', 'df5', "pd.merge(df1, df5)")
51

Hết[28]

df5 = pd.DataFrame({'group': ['Accounting', 'Accounting',
                              'Engineering', 'Engineering', 'HR', 'HR'],
                    'skills': ['math', 'spreadsheets', 'coding', 'linux',
                               'spreadsheets', 'organization']})
display('df1', 'df5', "pd.merge(df1, df5)")
52

Chúng tôi thấy rằng

df5 = pd.DataFrame({'group': ['Accounting', 'Accounting',
                              'Engineering', 'Engineering', 'HR', 'HR'],
                    'skills': ['math', 'spreadsheets', 'coding', 'linux',
                               'spreadsheets', 'organization']})
display('df1', 'df5', "pd.merge(df1, df5)")
211
df5 = pd.DataFrame({'group': ['Accounting', 'Accounting',
                              'Engineering', 'Engineering', 'HR', 'HR'],
                    'skills': ['math', 'spreadsheets', 'coding', 'linux',
                               'spreadsheets', 'organization']})
display('df1', 'df5', "pd.merge(df1, df5)")
30 của chúng tôi không chứa toàn bộ diện tích của Hoa Kỳ. Chúng tôi có thể chèn giá trị thích hợp (ví dụ: sử dụng tổng của tất cả các khu vực tiểu bang), nhưng trong trường hợp này, chúng tôi sẽ chỉ bỏ các giá trị null vì mật độ dân số của toàn bộ Hoa Kỳ không liên quan đến cuộc thảo luận hiện tại của chúng tôi

Trong [29]

df5 = pd.DataFrame({'group': ['Accounting', 'Accounting',
                              'Engineering', 'Engineering', 'HR', 'HR'],
                    'skills': ['math', 'spreadsheets', 'coding', 'linux',
                               'spreadsheets', 'organization']})
display('df1', 'df5', "pd.merge(df1, df5)")
53

Hết[29]

tiểu bang/khu vực nămdân số tiểu bangkhu vực (sq. mi)0ALunder1820121117489. 0Alabama52423. 01ALtotal20124817528. 0Alabama52423. 02ALunder1820101130966. 0Alabama52423. 03ALtotal20104785570. 0Alabama52423. 04ALunder1820111125763. 0Alabama52423. 0

Bây giờ chúng tôi có tất cả dữ liệu chúng tôi cần. Để trả lời câu hỏi quan tâm, trước tiên hãy chọn phần dữ liệu tương ứng với năm 2000 và tổng dân số. Chúng ta sẽ sử dụng hàm

df5 = pd.DataFrame({'group': ['Accounting', 'Accounting',
                              'Engineering', 'Engineering', 'HR', 'HR'],
                    'skills': ['math', 'spreadsheets', 'coding', 'linux',
                               'spreadsheets', 'organization']})
display('df1', 'df5', "pd.merge(df1, df5)")
213 để thực hiện việc này một cách nhanh chóng (điều này yêu cầu phải cài đặt gói
df5 = pd.DataFrame({'group': ['Accounting', 'Accounting',
                              'Engineering', 'Engineering', 'HR', 'HR'],
                    'skills': ['math', 'spreadsheets', 'coding', 'linux',
                               'spreadsheets', 'organization']})
display('df1', 'df5', "pd.merge(df1, df5)")
214; xem phần High-Performance Pandas.
df5 = pd.DataFrame({'group': ['Accounting', 'Accounting',
                              'Engineering', 'Engineering', 'HR', 'HR'],
                    'skills': ['math', 'spreadsheets', 'coding', 'linux',
                               'spreadsheets', 'organization']})
display('df1', 'df5', "pd.merge(df1, df5)")
215 và
df5 = pd.DataFrame({'group': ['Accounting', 'Accounting',
                              'Engineering', 'Engineering', 'HR', 'HR'],
                    'skills': ['math', 'spreadsheets', 'coding', 'linux',
                               'spreadsheets', 'organization']})
display('df1', 'df5', "pd.merge(df1, df5)")
213)

Trong [30]

df5 = pd.DataFrame({'group': ['Accounting', 'Accounting',
                              'Engineering', 'Engineering', 'HR', 'HR'],
                    'skills': ['math', 'spreadsheets', 'coding', 'linux',
                               'spreadsheets', 'organization']})
display('df1', 'df5', "pd.merge(df1, df5)")
54

Ra[30]

tiểu bang/khu vực nămdân số tiểu bangkhu vực (sq. mi)3ALtotal20104785570. 0Alabama52423. 091AKtotal2010713868. 0Alaska656425. 0101AZtotal20106408790. 0Arizona114006. 0189ARtotal20102922280. 0Arkansas53182. 0197CAtotal201037333601. 0California163707. 0

Bây giờ hãy tính mật độ dân số và hiển thị nó theo thứ tự. Chúng tôi sẽ bắt đầu bằng cách lập chỉ mục lại dữ liệu của chúng tôi về trạng thái và sau đó tính toán kết quả

Trong [31]

df5 = pd.DataFrame({'group': ['Accounting', 'Accounting',
                              'Engineering', 'Engineering', 'HR', 'HR'],
                    'skills': ['math', 'spreadsheets', 'coding', 'linux',
                               'spreadsheets', 'organization']})
display('df1', 'df5', "pd.merge(df1, df5)")
55

Trong [32]

df5 = pd.DataFrame({'group': ['Accounting', 'Accounting',
                              'Engineering', 'Engineering', 'HR', 'HR'],
                    'skills': ['math', 'spreadsheets', 'coding', 'linux',
                               'spreadsheets', 'organization']})
display('df1', 'df5', "pd.merge(df1, df5)")
56

Ra[32]

df5 = pd.DataFrame({'group': ['Accounting', 'Accounting',
                              'Engineering', 'Engineering', 'HR', 'HR'],
                    'skills': ['math', 'spreadsheets', 'coding', 'linux',
                               'spreadsheets', 'organization']})
display('df1', 'df5', "pd.merge(df1, df5)")
57

Kết quả là xếp hạng các tiểu bang của Hoa Kỳ cùng với Washington, DC và Puerto Rico theo thứ tự mật độ dân số năm 2010, tính theo cư dân trên mỗi dặm vuông. Chúng ta có thể thấy rằng cho đến nay khu vực dày đặc nhất trong tập dữ liệu này là Washington, DC (i. e. , Quận Columbia);

Chúng tôi cũng có thể kiểm tra phần cuối của danh sách

Trong [33]

df5 = pd.DataFrame({'group': ['Accounting', 'Accounting',
                              'Engineering', 'Engineering', 'HR', 'HR'],
                    'skills': ['math', 'spreadsheets', 'coding', 'linux',
                               'spreadsheets', 'organization']})
display('df1', 'df5', "pd.merge(df1, df5)")
58

Ra[33]

df5 = pd.DataFrame({'group': ['Accounting', 'Accounting',
                              'Engineering', 'Engineering', 'HR', 'HR'],
                    'skills': ['math', 'spreadsheets', 'coding', 'linux',
                               'spreadsheets', 'organization']})
display('df1', 'df5', "pd.merge(df1, df5)")
59

Chúng tôi thấy rằng cho đến nay, bang có mật độ dân số thấp nhất là Alaska, trung bình hơn một cư dân trên một dặm vuông

Kiểu hợp nhất dữ liệu lộn xộn này là một nhiệm vụ phổ biến khi cố gắng trả lời các câu hỏi bằng các nguồn dữ liệu trong thế giới thực. Tôi hy vọng rằng ví dụ này đã cung cấp cho bạn ý tưởng về cách bạn có thể kết hợp các công cụ mà chúng tôi đã đề cập để hiểu rõ hơn về dữ liệu của bạn

Chúng ta có thể tham gia 3 bảng trong mysql không?

Có thể sử dụng nhiều câu lệnh nối cùng nhau để nối nhiều bảng cùng lúc . Để làm điều đó, bạn thêm câu lệnh INNER JOIN thứ hai và câu lệnh ON thứ hai để chỉ ra bảng thứ ba và mối quan hệ thứ hai.

Bạn có thể tham gia bên trong 3 bảng không?

Cách phổ biến nhất để nối ba bảng giống như thế này. CHỌN * TỪ Bảng1 INNER THAM GIA Bảng2 BẬT Điều kiện INNER THAM GIA Bảng3 BẬT Điều kiện ; . Bạn cũng có thể kết hợp các loại tham gia nếu cần (ví dụ bên dưới).

Làm cách nào để tham gia 3 bảng bên trong tham gia SQL?

Cú pháp cho nhiều phép nối. CHỌN cột_tên1,tên_cột2,. TỪ_tên_bảng1 INNER THAM GIA tên_bảng2 BẬT điều kiện_1 INNER THAM GIA tên_bảng3 BẬT điều kiện_2 INNER THAM GIA tên_bảng4 BẬT điều kiện_3 . . . Ghi chú. Trong khi chỉ chọn các cột cụ thể, hãy sử dụng table_name.

Sự khác biệt giữa tham gia () và hợp nhất () trong gấu trúc là gì?

Sự khác biệt chính giữa tham gia và hợp nhất sẽ là; . 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.