Làm thế nào để bạn kết hợp các bảng trong python?

Bạn sẽ khó tìm được một dự án khoa học dữ liệu không yêu cầu nối [kết hợp nhiều nguồn dữ liệu với nhau]. Thông thường, phân tích dữ liệu yêu cầu thêm các hàng mới vào bảng, kéo các cột bổ sung vào hoặc trong các trường hợp phức tạp hơn, hợp nhất các bảng riêng biệt trên một khóa chung. Tất cả các thủ thuật này đều rất hữu ích để bạn cất trong túi sau của mình, vì vậy các nguồn dữ liệu khác nhau không cản trở quá trình phân tích của bạn

Trong hướng dẫn ghép nối này, chúng ta sẽ tìm hiểu một số phương pháp kết hợp dữ liệu bằng gấu trúc. Nó hướng đến người mới bắt đầu đến trình độ trung cấp và sẽ yêu cầu kiến ​​thức về các nguyên tắc cơ bản của DataFrame gấu trúc. Một số hiểu biết trước về SQL và cơ sở dữ liệu quan hệ cũng sẽ có ích, nhưng không bắt buộc. Chúng ta sẽ xem xét bốn kỹ thuật khác nhau [nối, nối, hợp nhất và nối] trong khi phân tích số giờ lao động trung bình hàng năm cho một số quốc gia. Chúng tôi cũng sẽ tạo một biểu đồ sau mỗi bước để chúng tôi hiểu trực quan các kết quả khác nhau mà mỗi kỹ thuật kết hợp dữ liệu tạo ra. Như một phần thưởng, bạn sẽ để lại hướng dẫn này với những hiểu biết sâu sắc về xu hướng lao động trên toàn cầu và một bộ đồ thị đẹp mắt mà bạn có thể thêm vào danh mục đầu tư của mình

Chúng ta sẽ đóng vai chuyên gia phân tích kinh tế vĩ mô tại Tổ chức Hợp tác và Phát triển Kinh tế [OECD]. Câu hỏi chúng tôi đang cố gắng trả lời đơn giản nhưng thú vị. quốc gia nào có công dân làm việc nhiều giờ nhất và những xu hướng này đã thay đổi như thế nào theo thời gian? . Công việc của chúng tôi trước tiên là thu thập tất cả dữ liệu vào một nơi để chúng tôi có thể chạy các phân tích cần thiết

Truy cập tập dữ liệu

Tải file dữ liệu hướng dẫn tại đây

Chúng tôi sẽ sử dụng dữ liệu từ cơ sở dữ liệu Thống kê thị trường lao động và việc làm của OECD, cung cấp dữ liệu về số giờ lao động trung bình hàng năm cho hầu hết các nước phát triển kể từ năm 1950. Trong suốt hướng dẫn, tôi sẽ đề cập đến DataFrames và các bảng thay thế cho nhau. Chúng tôi sẽ sử dụng Notebook Jupyter trong Python 3 [bạn có thể sử dụng bất kỳ IDE [môi trường phát triển tích hợp] nào mà bạn muốn, nhưng hướng dẫn này sẽ dễ thực hiện nhất cùng với Jupyter]. Khi đã khởi chạy, hãy nhập các thư viện


north_america
9 và
north_america.plot[]
0, sau đó sử dụng
north_america.plot[]
1 để Jupyter biết hiển thị các ô trong các ô của sổ ghi chép. Nếu bất kỳ công cụ nào tôi đã đề cập nghe có vẻ lạ, tôi khuyên bạn nên xem hướng dẫn bắt đầu của Dataquest


import pandas as pd
import matplotlib.pyplot as plt

Tiếp theo, chúng tôi sẽ sử dụng chức năng

north_america.plot[]
2 để mở hai tệp dữ liệu đầu tiên của chúng tôi. Chúng tôi sẽ chỉ định rằng cột đầu tiên sẽ được sử dụng làm chỉ mục hàng bằng cách chuyển đối số
north_america.plot[]
3. Cuối cùng, chúng tôi sẽ hiển thị các bảng ban đầu của chúng tôi trông như thế nào


north_america = pd.read_csv['./north_america_2000_2010.csv', index_col=0]
south_america = pd.read_csv['./south_america_2000_2010.csv', index_col=0]

north_america

20002001200220032004200520062007200820092010Quốc giaCanada1779. 01771. 01754. 01740. 01760. 017471745. 01741. 017351701. 01703. 0Mexico2311. 22285. 22271. 22276. 52270. 622812280. 62261. 422582250. 22242. 4USA1836. 01814. 01810. 01800. 01802. 017991800. 01798. 017921767. 01778. 0

20002001200220032004200520062007200820092010Quốc giaChile22632242225022352232215721652128209520742069. 6

Sau một số quan sát, chúng tôi thấy rằng các hàng là quốc gia, cột là năm và giá trị ô là số giờ làm việc trung bình hàng năm của mỗi nhân viên. DataFrames tuyệt vời như vậy, nhưng chúng vẫn khá khó hiểu khi nhìn thoáng qua, vì vậy chúng tôi sẽ thực hiện một số âm mưu bằng cách sử dụng phương pháp

north_america.plot[]
4 của matplotlib để tạo biểu đồ đường cho xu hướng lao động hàng năm của chúng tôi

north_america.plot[]
north_america.plot[]
0

Ồ, đó không phải là những gì chúng tôi muốn. Theo mặc định, phương thức

north_america.plot[]
4 coi các hàng là nhãn trục x, giá trị ô là nhãn trục y và cột là dòng. Cách khắc phục nhanh ở đây là xoay các trục trên DataFrame của chúng tôi bằng phương pháp
north_america.plot[]
6. Để làm cho hình ảnh trực quan của chúng tôi bắt buộc, chúng tôi sẽ thêm tiêu đề bằng cách sử dụng tham số
north_america.plot[]
7 trong phương thức cốt truyện. Chúng ta có thể xâu chuỗi các phương thức này lại với nhau và sau đó sử dụng
north_america.plot[]
8 để hiển thị gọn gàng các biểu đồ đường kẻ của chúng ta mà không cần dòng văn bản matplotlib phía trên biểu đồ

north_america.plot[]
5

north_america.plot[]
6

Kết nối dữ liệu Châu Mỹ

Có vẻ như chúng tôi có ba quốc gia trong Khung dữ liệu ________ 19 và một quốc gia trong Khung dữ liệu ________ 100 của chúng tôi. Vì đây là hai khu vực riêng biệt nên khó có thể so sánh số giờ lao động trung bình ở Nam Mỹ với Bắc Mỹ. Nếu chúng tôi có thể đưa tất cả các quốc gia vào cùng một khung dữ liệu, thì việc thực hiện chiến dịch này sẽ dễ dàng hơn nhiều

Đối với các hoạt động đơn giản mà chúng ta cần thêm các hàng hoặc cột có cùng độ dài, thì hàm

north_america.plot[]
01 là hoàn hảo. Tất cả những gì chúng ta phải làm là chuyển vào một danh sách các đối tượng DataFrame theo thứ tự mà chúng ta muốn chúng được nối với nhau

north_america.plot[]
0
  • trục. liệu chúng ta sẽ nối dọc theo hàng [0] hay cột [1]
  • tham gia. có thể được đặt thành bên trong, bên ngoài, bên trái hoặc bên phải;
  • bỏ qua_index. có nên giữ lại các nhãn hàng ban đầu hay không

Trong trường hợp của chúng tôi, chúng tôi có thể để nguyên tất cả các tham số mặc định như thế nào và chỉ chuyển vào Khung dữ liệu

north_america.plot[]
9 và
north_america.plot[]
00 của chúng tôi

north_america.plot[]
3

20002001200220032004200520062007200820092010Quốc giaCanada1779. 01771. 01754. 01740. 01760. 017471745. 01741. 017351701. 01703. 0Mexico2311. 22285. 22271. 22276. 52270. 622812280. 62261. 422582250. 22242. 4USA1836. 01814. 01810. 01800. 01802. 017991800. 01798. 017921767. 01778. 0Chile2263. 02242. 02250. 02235. 02232. 021572165. 02128. 020952074. 02069. 6

Đây có vẻ là một khởi đầu tốt, nhưng chúng tôi muốn dữ liệu của mình càng mới càng tốt. Sau khi yêu cầu dữ liệu về bốn quốc gia này từ những năm sau đó, nhóm thu thập dữ liệu đã gửi cho chúng tôi mỗi năm từ 2011 đến 2015 trong các tệp CSV riêng biệt như sau.
______104

Hãy tải dữ liệu mới bằng cách sử dụng vòng lặp for cùng với phương pháp

north_america.plot[]
05 để tự động hóa quy trình một chút. Chúng tôi sẽ đưa Khung dữ liệu
north_america.plot[]
06 của chúng tôi từ trước đó vào danh sách có tên
north_america.plot[]
07 và nối thêm từng Khung dữ liệu mới này vào danh sách đó. Cuối cùng, chúng tôi sẽ hiển thị Khung dữ liệu
north_america.plot[]
08 bằng cách sử dụng lập chỉ mục danh sách

north_america.plot[]
9

2011Quốc giaCanada1700. 0Chile2047. 4Mexico2250. 2USA1786. 0

Một điều bạn có thể nhận thấy là các hàng trong Khung dữ liệu

north_america.plot[]
08 mà chúng tôi vừa in không theo cùng một trình tự với Khung dữ liệu
north_america.plot[]
06 [gấu trúc tự động sắp xếp chúng theo thứ tự bảng chữ cái]. May mắn thay, hàm
north_america.plot[]
01 nối dữ liệu trên nhãn chỉ mục [trong trường hợp của chúng tôi là quốc gia], chứ không phải theo trình tự, vì vậy điều này sẽ không gây ra sự cố trong quá trình nối. Thay vào đó, nếu chúng ta muốn nối các hàng theo thứ tự hiện tại, chúng ta có thể chuyển đối số
north_america.plot[]
52. Điều này sẽ dẫn đến việc các chỉ mục được gán một chuỗi các số nguyên. Điều quan trọng cần lưu ý là chúng ta phải tạo danh sách DataFrames theo thứ tự mà chúng ta muốn chúng được nối với nhau, nếu không thì các năm của chúng ta sẽ không theo thứ tự thời gian

Chúng tôi không thể sử dụng hàm

north_america.plot[]
01 chính xác như cách chúng tôi đã làm lần trước, bởi vì bây giờ chúng tôi đang thêm cột thay vì hàng. Đây là nơi trục phát huy tác dụng. Theo mặc định, đối số được đặt thành
north_america.plot[]
54, có nghĩa là chúng tôi đang nối các hàng. Lần này, chúng tôi sẽ cần chuyển vào
north_america.plot[]
55 để cho biết chúng tôi muốn nối các cột. Hãy nhớ rằng, điều này sẽ chỉ hoạt động nếu tất cả các bảng có cùng chiều cao [số lượng hàng]


Nguồn. tràn ngăn xếp

Một lưu ý cần lưu ý khi nối dọc theo trục 1 là tiêu đề cho các chỉ mục hàng, 'Quốc gia', sẽ bị loại bỏ. Điều này là do pandas không chắc liệu tiêu đề đó có áp dụng cho các nhãn hàng mới đã được thêm hay không. Chúng ta có thể dễ dàng khắc phục điều này bằng cách gán thuộc tính

north_america.plot[]
56. Sau đó, hãy lập một cốt truyện khác để xem chúng ta đang ở đâu


north_america = pd.read_csv['./north_america_2000_2010.csv', index_col=0]
south_america = pd.read_csv['./south_america_2000_2010.csv', index_col=0]
0

2000200120022003200420052006200720082009201020112012201320142015Quốc giaCanada1779. 01771. 01754. 01740. 01760. 017471745. 01741. 017351701. 01703. 01700. 01713. 01707. 01703. 01706. 0Chile2263. 02242. 02250. 02235. 02232. 021572165. 02128. 020952074. 02069. 62047. 42024. 02015. 31990. 11987. 5Mexico2311. 22285. 22271. 22276. 52270. 622812280. 62261. 422582250. 22242. 42250. 22225. 82236. 62228. 42246. 4USA1836. 01814. 01810. 01800. 01802. 017991800. 01798. 017921767. 01778. 01786. 01789. 01787. 01789. 01790. 0


north_america = pd.read_csv['./north_america_2000_2010.csv', index_col=0]
south_america = pd.read_csv['./south_america_2000_2010.csv', index_col=0]
1

Nối thêm dữ liệu từ các châu lục khác

Bây giờ chúng tôi đã có một cái nhìn đầy đủ về châu Mỹ, chúng tôi muốn xem khu vực này so với phần còn lại của thế giới như thế nào. Nhóm thu thập dữ liệu đã cung cấp các tệp CSV cho Châu Á, Châu Âu và Nam Thái Bình Dương từ năm 2000 đến năm 2015. Hãy tải các tệp này vào và xem trước. Vì

north_america.plot[]
57 là một bảng cao hơn nhiều, chúng tôi sẽ sử dụng phương pháp
north_america.plot[]
58 để tiết kiệm không gian bằng cách chỉ hiển thị 5 hàng đầu tiên


north_america = pd.read_csv['./north_america_2000_2010.csv', index_col=0]
south_america = pd.read_csv['./south_america_2000_2010.csv', index_col=0]
2

2000200120022003200420052006200720082009201020112012201320142015CountryIsrael2017197919931974194219311919193119291927191819201910186718531858Japan1821180917981799178717751784178517711714173317281745173417291719Korea2512249924642424239223512346230622462232218720902163207921242113Russia1982198019821993199319891998199919971974197619791982198019851978


north_america = pd.read_csv['./north_america_2000_2010.csv', index_col=0]
south_america = pd.read_csv['./south_america_2000_2010.csv', index_col=0]
3

2000200120022003200420052006200720082009201020112012201320142015Quốc gia Áo1807. 41794. 61792. 21783. 81786. 81764. 01746. 21736. 01728. 51673. 01668. 61675. 91652. 91636. 71629. 41624. 9Bỉ1595. 01588. 01583. 01578. 01573. 01565. 01572. 01577. 01570. 01548. 01546. 01560. 01560. 01558. 01560. 01541. 0Thụy Sĩ1673. 61635. 01614. 01626. 81656. 51651. 71643. 21632. 71623. 11614. 91612. 41605. 41590. 91572. 91568. 31589. 7Cộng hòa Séc1896. 01818. 01816. 01806. 01817. 01817. 01799. 01784. 01790. 01779. 01800. 01806. 01776. 01763. 01771. 01779. 0Đức1452. 01441. 91430. 91424. 81422. 21411. 31424. 71424. 41418. 41372. 71389. 91392. 81375. 31361. 71366. 41371. 0


north_america = pd.read_csv['./north_america_2000_2010.csv', index_col=0]
south_america = pd.read_csv['./south_america_2000_2010.csv', index_col=0]
4

2000200120022003200420052006200720082009201020112012201320142015Quốc giaÚc1778. 71736. 71731. 71735. 81734. 51729. 21720. 51712. 51717. 216901691. 51699. 51678. 61662. 71663. 61665New Zealand1836. 01825. 01826. 01823. 01830. 01815. 01795. 01774. 01761. 017401755. 01746. 01734. 01752. 01762. 01757

Pandas có một phím tắt khi bạn chỉ muốn thêm các hàng mới được gọi là phương thức

north_america.plot[]
59. Cú pháp hơi khác một chút - vì đó là một phương thức DataFrame, chúng tôi sẽ sử dụng ký hiệu dấu chấm để gọi nó trên đối tượng
north_america.plot[]
06 của chúng tôi và sau đó chuyển các đối tượng mới làm đối số


north_america = pd.read_csv['./north_america_2000_2010.csv', index_col=0]
south_america = pd.read_csv['./south_america_2000_2010.csv', index_col=0]
5

Có vẻ như các DataFrames mới này có tất cả 16 năm làm cột của chúng. Nếu bất kỳ cột nào bị thiếu trong dữ liệu chúng tôi đang cố nối thêm, chúng sẽ dẫn đến các hàng đó có giá trị

north_america.plot[]
61 trong các ô nằm dưới cột năm bị thiếu. Hãy chạy phương thức chắp thêm và xác minh rằng tất cả các quốc gia đã được thêm thành công bằng cách in
north_america.plot[]
62. Sau đó, chúng ta có thể vẽ biểu đồ đường để xem dữ liệu được thêm vào mới trông như thế nào


north_america = pd.read_csv['./north_america_2000_2010.csv', index_col=0]
south_america = pd.read_csv['./south_america_2000_2010.csv', index_col=0]
6

north_america = pd.read_csv['./north_america_2000_2010.csv', index_col=0]
south_america = pd.read_csv['./south_america_2000_2010.csv', index_col=0]
7

north_america = pd.read_csv['./north_america_2000_2010.csv', index_col=0]
south_america = pd.read_csv['./south_america_2000_2010.csv', index_col=0]
8

Tùy chỉnh trực quan hóa

Khung dữ liệu mới với tất cả 36 quốc gia thật tuyệt nhưng thánh moly đã làm rối tung cốt truyện của chúng tôi. Trước khi tiếp tục, hãy xem liệu bạn có thể phát hiện ra ba điều không ổn trong cách hình dung của chúng tôi không

Đầu tiên, chúng tôi sẽ muốn làm cho cốt truyện của mình lớn hơn nhiều để có thể xem tất cả các điểm dữ liệu mới này với độ trung thực cao hơn. Đây là một cách khắc phục khá dễ dàng nếu chúng ta chuyển đối số

north_america.plot[]
63, bộ dữ liệu chỉ định kích thước của hình vẽ cốt truyện. Bạn cũng có thể nhận thấy có 36 dòng đại diện cho tất cả các quốc gia khác nhau của chúng tôi, nhưng màu sắc lại tự lặp lại. Điều này là do bản đồ màu mặc định chỉ chứa 10 màu riêng biệt, nhưng chúng ta sẽ cần nhiều hơn thế. Tôi đã xem tài liệu về bản đồ màu matplotlib và quyết định sử dụng bản đồ cầu vồng, điều này có thể được chuyển vào dưới dạng
north_america.plot[]
64. Vì chúng tôi đang làm cho biểu đồ lớn hơn, tôi cũng muốn các đường kẻ dày hơn nên tôi đang đặt
north_america.plot[]
65

Cuối cùng, chúng tôi sẽ giải quyết huyền thoại chồng chéo lên cốt truyện của chúng tôi. Điều này có thể được thực hiện với chức năng

north_america.plot[]
66. Chúng tôi sẽ chuyển vào
north_america.plot[]
67 để cho biết chúng tôi muốn hộp chú giải ở bên phải cốt truyện. Bạn có thể kiểm tra điều này và thấy rằng nó không khớp chính xác với đường viền của cốt truyện. Chúng ta có thể thực hiện một số tinh chỉnh với đối số
north_america.plot[]
68; . Tôi đã thử với các giá trị cho đến khi tôi tìm thấy một giá trị phù hợp, nhưng vui lòng sửa đổi bất kỳ đối số nào trong số bốn đối số này nếu bạn thích một thẩm mỹ khác


north_america = pd.read_csv['./north_america_2000_2010.csv', index_col=0]
south_america = pd.read_csv['./south_america_2000_2010.csv', index_col=0]
9

Sơ lược về nối

Đối với những người có kinh nghiệm tham gia trong cơ sở dữ liệu quan hệ như SQL, đây là một số tin tốt. gấu trúc có các tùy chọn để hợp nhất và tham gia bộ nhớ trong hiệu suất cao. Khi chúng tôi cần kết hợp các DataFrames rất lớn, các phép nối đóng vai trò là một cách mạnh mẽ để thực hiện các thao tác này một cách nhanh chóng

Một vài điều quan trọng cần ghi nhớ. các phép nối chỉ có thể được thực hiện trên hai DataFrames cùng một lúc, được ký hiệu là bảng bên trái và bên phải. Khóa là cột chung mà hai DataFrames sẽ được nối trên đó. Đó là một phương pháp hay để sử dụng các khóa có giá trị duy nhất trong toàn bộ cột để tránh sự trùng lặp ngoài ý muốn của các giá trị hàng

Có bốn cách cơ bản để xử lý phép nối [bên trong, bên trái, bên phải và bên ngoài], tùy thuộc vào hàng nào phải giữ lại dữ liệu của chúng. Các sơ đồ venn dưới đây sẽ giúp bạn hiểu một cách trực quan các phép nối này;

Phép nối bên trong là phép nối đơn giản nhất, phép nối này sẽ chỉ giữ lại các hàng trong đó cả hai bảng chia sẻ một giá trị khóa

Nối trái giữ tất cả các hàng xuất hiện trong bảng chính [trái] và bảng bên phải sẽ chỉ nối trên các hàng mà nó chia sẻ một giá trị khóa với bên trái. Giá trị

north_america.plot[]
61 sẽ được điền vào các ô không có giá trị khóa phù hợp

Nối phải là khái niệm giống như nối trái, nhưng giữ tất cả các hàng xuất hiện trong bảng bên phải. DataFrame kết quả sẽ có bất kỳ giá trị

north_america.plot[]
61 tiềm năng nào ở phía bên trái

Cuối cùng, một phép nối ngoài đầy đủ giữ lại tất cả các hàng xuất hiện trong cả hai bảng và các giá trị

north_america.plot[]
61 có thể hiển thị ở hai bên của Khung dữ liệu kết quả của bạn

Hợp nhất dữ liệu lao động lịch sử

Thật tuyệt khi có thể thấy số giờ lao động đã thay đổi như thế nào kể từ năm 2000, nhưng để thấy các xu hướng thực sự xuất hiện, chúng tôi muốn có thể xem càng nhiều dữ liệu lịch sử càng tốt. Nhóm thu thập dữ liệu đã rất tốt bụng khi gửi dữ liệu từ năm 1950 đến năm 2000, hãy tải nó vào và xem


north_america
0

1950195119521953195419551956195719581959…1990199119921993199419951996199719981999Quốc gia ÚcNaNNaNNaNNaNNaNNaNNaNNaNNaNNaN…1779. 51774. 901773. 701786. 501797. 601793. 4001782. 7001783. 6001768. 401778. 8ÁoNaNNaNNaNNaNNaNNaNNaNNaNNaN…NaNNaNNaNNaNNaN1619. 2001637. 1501648. 5001641. 651654. 0BỉNaNNaNNaNNaNNaNNaNNaNNaNNaN…1662. 91625. 791602. 721558. 591558. 591515. 8351500. 2951510. 3151513. 331514. 5CanadaNaNNaNNaNNaNNaNNaNNaNNaNNaN…1789. 51767. 501766. 001764. 501773. 001771. 5001786. 5001782. 5001778. 501778. 5Thụy SĩNaNNaNNaNNaNNaNNaNNaNNaNNaN…NaN1673. 101684. 801685. 801706. 201685. 5001658. 9001648. 6001656. 601678. 4

5 hàng × 50 cột

Bạn sẽ nhận thấy có rất nhiều giá trị

north_america.plot[]
61, đặc biệt là trong những năm đầu. Điều này đơn giản có nghĩa là không có dữ liệu nào được thu thập cho các quốc gia đó trong những năm trước đó. Đánh số 0 vào các ô đó sẽ gây hiểu nhầm, vì điều đó có nghĩa là không ai dành bất kỳ giờ nào để làm việc trong năm đó. Thay vào đó,
north_america.plot[]
61 đại diện cho giá trị null, nghĩa là “không phải là số”. Việc có các giá trị null sẽ không ảnh hưởng đến việc hợp nhất DataFrame của chúng tôi vì chúng tôi sẽ sử dụng nhãn hàng [chỉ mục] làm khóa của mình

Khi hợp nhất, điều quan trọng cần lưu ý là hàng nào sẽ được giữ lại từ mỗi bảng. Tôi không chắc kích thước đầy đủ của các bảng của mình là bao nhiêu, vì vậy thay vì hiển thị toàn bộ nội dung, chúng tôi chỉ có thể xem xét các sự kiện mà chúng tôi quan tâm. Hãy in thuộc tính

north_america.plot[]
04 để xem một bộ chứa [tổng số hàng, tổng số cột] cho cả hai bảng


north_america
1

north_america
2

Lưu ý rằng bảng lịch sử có 39 hàng, mặc dù chúng tôi chỉ phân tích 36 quốc gia trong bảng thế giới của chúng tôi. Việc loại bỏ ba hàng bổ sung có thể được xử lý tự động bằng một số hợp nhất DataFrame thích hợp. Chúng tôi sẽ coi

north_america.plot[]
05 là bảng chính của chúng tôi và muốn bảng này ở bên phải của Khung dữ liệu kết quả và lịch sử ở bên trái, vì vậy các năm [cột] ở theo thứ tự thời gian. Các cột trong hai bảng này đều khác nhau, điều đó có nghĩa là chúng ta sẽ phải tìm một khóa để nối vào. Trong trường hợp này, khóa sẽ là chỉ mục hàng [quốc gia]

Chúng tôi sẽ muốn thực hiện phép nối bên phải bằng cách sử dụng hàm

north_america.plot[]
06 và sử dụng các chỉ mục làm khóa để nối trên


north_america
3

Khi sử dụng chức năng này, hai đối số đầu tiên sẽ luôn là DataFrames bên trái và bên phải, tương ứng. Sau đó, chúng tôi muốn đặt

north_america.plot[]
07 và
north_america.plot[]
08 để chỉ định rằng các chỉ mục sẽ là giá trị chính của chúng tôi và vì vậy chúng tôi có thể giữ lại các quốc gia dưới dạng nhãn hàng [gấu trúc sẽ thay đổi chỉ mục hàng thành một chuỗi các số nguyên. ] Cuối cùng, chúng tôi vượt qua trong
north_america.plot[]
09 để chỉ ra một phép nối đúng

Tham gia đúng sẽ đảm bảo chúng tôi chỉ giữ lại 36 hàng từ bảng bên phải và loại bỏ thêm 3 hàng khỏi bảng lịch sử. Hãy in hình dạng của DataFrame kết quả và hiển thị phần đầu để đảm bảo mọi thứ diễn ra chính xác


north_america
4

north_america
5

1950195119521953195419551956195719581959…2006200720082009201020112012201320142015Quốc gia CanadaNaNNaNNaNNaNNaNNaNNaNNaNNaN…1745. 01741. 01735. 01701. 01703. 01700. 01713. 01707. 01703. 01706. 0ChileNaNNaNNaNNaNNaNNaNNaNNaNNaN…2165. 02128. 02095. 02074. 02069. 62047. 42024. 02015. 31990. 11987. 5MexicoNaNNaNNaNNaNNaNNaNNaNNaNNa…2280. 62261. 42258. 02250. 22242. 42250. 22225. 82236. 62228. 42246. 4USA1960. 01975. 51978. 01980. 01970. 51992. 51990. 01962. 01936. 51947. 0…1800. 01798. 01792. 01767. 01778. 01786. 01789. 01787. 01789. 01790. 0IsraelNaNNaNNaNNaNNaNNaNNaNNaNNaN…1919. 01931. 01929. 01927. 01918. 01920. 01910. 01867. 01853. 01858. 0

5 hàng × 66 cột

Một cách nhanh hơn để tham gia

Bây giờ chúng ta đã hoàn thành nó một cách khó khăn và hiểu được việc hợp nhất bảng về mặt khái niệm, hãy thử một kỹ thuật đơn giản hơn. Pandas có một phương pháp rõ ràng để tham gia vào các chỉ mục hoàn hảo cho tình huống của chúng tôi


north_america
6

Phương thức

north_america.plot[]
30 cho phép chúng ta sử dụng ký hiệu dấu chấm trên bảng bên trái, sau đó chuyển vào bảng bên phải và
north_america.plot[]
31 làm đối số. Điều này giúp loại bỏ nhu cầu chỉ định các đối số chỉ mục bên phải và bên trái như chúng ta đã làm trong hàm trước. Nếu
north_america.plot[]
32, khóa nối sẽ là chỉ mục hàng. Hãy quan sát cách các giá trị rỗng ảnh hưởng đến phân tích của chúng tôi bằng cách xem phần đầu DataFrame


north_america
7

1950195119521953195419551956195719581959…2006200720082009201020112012201320142015Quốc gia CanadaNaNNaNNaNNaNNaNNaNNaNNaNNaN…1745. 01741. 01735. 01701. 01703. 01700. 01713. 01707. 01703. 01706. 0ChileNaNNaNNaNNaNNaNNaNNaNNaNNaN…2165. 02128. 02095. 02074. 02069. 62047. 42024. 02015. 31990. 11987. 5MexicoNaNNaNNaNNaNNaNNaNNaNNaNNa…2280. 62261. 42258. 02250. 22242. 42250. 22225. 82236. 62228. 42246. 4USA1960. 01975. 51978. 01980. 01970. 51992. 51990. 01962. 01936. 51947. 0…1800. 01798. 01792. 01767. 01778. 01786. 01789. 01787. 01789. 01790. 0IsraelNaNNaNNaNNaNNaNNaNNaNNaNNaN…1919. 01931. 01929. 01927. 01918. 01920. 01910. 01867. 01853. 01858. 0

5 hàng × 66 cột

Có vẻ như nhiều hàng có giá trị null ở phía bên trái của DataFrame, như chúng ta mong đợi với phép nối phải. Trước khi vẽ biểu đồ đường cuối cùng, bạn nên sắp xếp các hàng theo thứ tự bảng chữ cái để giúp người xem dễ đọc chú giải hơn. Điều này có thể được thực hiện với phương thức

north_america.plot[]
33. Chúng ta có thể chuyển tham số
north_america.plot[]
34 để tránh phải gán lại biến
north_america.plot[]
35 của mình. Sau đó, chỉ cần sử dụng lại mã matplotlib từ hình ảnh trực quan gần đây nhất của chúng tôi để hiển thị Khung dữ liệu được sắp xếp cuối cùng của chúng tôi


north_america
8

Đặt tất cả lại với nhau [ý định chơi chữ]

Ồ, hình dung của chúng ta trông khá ấn tượng khi chúng ta có một cái nhìn đầy màu sắc về các xu hướng lao động kéo dài hơn nửa thế kỷ. Làm công nhân Hàn Quốc những năm 80 chắc mệt lắm

Để tóm tắt

  • Hàm
    north_america.plot[]
    01. đa mục đích nhất và có thể được sử dụng để kết hợp nhiều DataFrame dọc theo một trong hai trục
  • phương pháp
    north_america.plot[]
    59. một cách nhanh chóng để thêm hàng vào DataFrame của bạn, nhưng không áp dụng để thêm cột
  • chức năng
    north_america.plot[]
    06. tuyệt vời khi kết hợp hai DataFrames lại với nhau khi chúng ta có một cột [khóa] chứa các giá trị chung
  • phương pháp
    north_america.plot[]
    30. một cách nhanh hơn để tham gia hai DataFrames, nhưng chỉ hoạt động ngoài nhãn chỉ mục chứ không phải cột

Để tìm hiểu sâu hơn về các kỹ thuật mà chúng tôi đã làm việc cùng, hãy xem hướng dẫn hợp nhất, nối và nối gấu trúc

Sẵn sàng để tiếp tục học hỏi?

Đừng bao giờ tự hỏi Tôi nên học gì tiếp theo?

Trên lộ trình Python cho Khoa học dữ liệu của chúng tôi, bạn sẽ học

  • Làm sạch, phân tích và trực quan hóa dữ liệu với matplotlib và pandas
  • Kiểm định giả thuyết, xác suất và thống kê
  • Học máy, học sâu và cây quyết định
  • và nhiều hơn nữa

Bắt đầu học ngay hôm nay với bất kỳ nhiệm vụ nào trong số hơn 60 nhiệm vụ miễn phí của chúng tôi

Hãy thử Dataquest [miễn phí. ]

Ảnh gấu trúc của Todorov. petar. p [Tác phẩm của chính mình]
[CC BY-SA 4. 0 [https. //Commons sáng tạo. org/giấy phép/by-sa/4. 0]]
thông qua Wikimedia Commons

nối trung gianTìm hiểu PythonPandaspythontutorialHướng dẫn

Thông tin về các Tác giả

Sunishchal Dev

Sunishchal Dev là một nhà khoa học dữ liệu ở San Francisco làm việc tại Noodle. ai. Anh bắt đầu học Python bằng Dataquest. io và hiện triển khai khả năng học máy cho các doanh nghiệp trong danh sách Fortune 500

Chủ Đề