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ôinorth_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[]
5north_america.plot[]
6Kế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 nhaunorth_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ôinorth_america.plot[]
320002001200220032004200520062007200820092010Quố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áchnorth_america.plot[]
92011Quố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 gianChú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]
02000200120022003200420052006200720082009201020112012201320142015Quố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]
1Nố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]
22000200120022003200420052006200720082009201020112012201320142015CountryIsrael2017197919931974194219311919193119291927191819201910186718531858Japan1821180917981799178717751784178517711714173317281745173417291719Korea2512249924642424239223512346230622462232218720902163207921242113Russia1982198019821993199319891998199919971974197619791982198019851978
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]
32000200120022003200420052006200720082009201020112012201320142015Quố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]
42000200120022003200420052006200720082009201020112012201320142015Quố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]
5Có 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]
8Tù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[]
65Cuố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]
9Sơ 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ợpNố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áiCuố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ạnHợ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
01950195119521953195419551956195719581959…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ìnhKhi 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
2Lư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
3Khi 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 đúngTham 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
51950195119521953195419551956195719581959…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
6Phươ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
71950195119521953195419551956195719581959…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
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ụcnorth_america.plot[]
- phương pháp
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ộtnorth_america.plot[]
- chức năng
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ị chungnorth_america.plot[]
- phương pháp
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ộtnorth_america.plot[]
Để 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