Thao tác dữ liệu trong python ví dụ

Nếu bạn đang sử dụng Python và muốn phân tích dữ liệu, có thể bạn sẽ sử dụng thư viện Pandas. Và vì lý do chính đáng, vì Pandas là một công cụ nhanh chóng và linh hoạt để thao tác và phân tích dữ liệu. Tuy nhiên, đối với một người mới sử dụng Python, tôi thấy rằng có thể hữu ích khi quay lại các khối xây dựng cơ bản của python để phân tích dữ liệu, giúp tôi học Python tốt hơn để sắp xếp dữ liệu cơ bản. Vì vậy, với tư cách là một bài tập Python, tôi sẽ thực hiện phân tích dữ liệu bằng Python mà không cần sử dụng thư viện Pandas. Chúng tôi sẽ phân tích sự gia tăng dân số trong tương lai dựa trên dữ liệu do Liên Hợp Quốc cung cấp

Chúng tôi sẽ phân tích dữ liệu dạng bảng có nghĩa là chúng tôi sẽ làm việc trên dữ liệu được lưu trữ trong danh sách hai chiều. Để thao tác với danh sách 2D, chúng tôi sẽ sử dụng nhiều các vòng lặp for đơn giản và lồng nhau, lập chỉ mục và các hàm python tích hợp như min(), max(), sort() và append(). Các công cụ mà bạn sẽ sử dụng trong quy trình sử dụng Pandas hoặc các thư viện khác

Dữ liệu* được tải xuống từ Gapminder. Bộ dữ liệu đầy đủ chứa các dự báo hàng năm cho 197 quốc gia từ năm 1800 đến năm 2100. Tôi đã sử dụng một tập hợp con có dữ liệu cho tất cả 197 quốc gia từ năm 2020 đến năm 2100 với khoảng thời gian 5 năm

Tập dữ liệu và mã có thể được tìm thấy trong repo Github này

Nhập dữ liệu

Như bạn có thể thấy bên dưới kết quả, dữ liệu được lưu trữ trong danh sách hai chiều, trong đó mỗi hàng là một phần tử trong danh sách. Bảng có định dạng rộng trong đó mỗi 'hàng' là một quốc gia và mỗi năm là một 'cột'. Điều đó có nghĩa là mỗi danh sách trong danh sách chứa tất cả thông tin dân số của mỗi quốc gia

Tạo bảng tóm tắt

Chúng ta sẽ bắt đầu phân tích tập dữ liệu dân số bằng cách tạo một bảng tóm tắt chứa thông tin về dân số dự kiến ​​cao nhất và thấp nhất cho mỗi quốc gia, cũng như sự thay đổi tương đối về dân số từ hôm nay đến năm 2100. Chúng tôi sẽ tạo một bảng có tên là pop_exp_dev sẽ chứa các cột sau

  • Quốc gia
  • Dân số dự kiến ​​thấp nhất
  • Năm dân số dự báo thấp nhất
  • Dân số dự kiến ​​cao nhất
  • Năm có dân số dự báo cao nhất
  • Biến động tương đối của dân số từ năm 2020 đến năm 2100

Chúng tôi tạo bảng này trong một vài bước

  • Đầu tiên, chúng ta cần chuyển đổi dữ liệu dân số thành giá trị số nguyên. Chúng tôi làm điều này bằng cách sử dụng vòng lặp for lồng nhau. Vòng lặp bên ngoài lặp qua từng hàng và vòng lặp bên trong lặp qua từng mục trong hàng và chuyển đổi từng mục từ chuỗi thành số nguyên. Chúng tôi bắt đầu vòng lặp bên ngoài tại chỉ mục 1 vì chúng tôi không cần chuyển đổi hàng đầu tiên chứa tên cột. Chúng tôi cũng bắt đầu vòng lặp bên trong ở chỉ mục 1 vì giá trị đầu tiên của mỗi hàng chứa tên quốc gia
  • Chúng tôi tạo một danh sách trống pop_exp_dev trong đó chúng tôi sẽ lưu trữ các giá trị mới
  • Để tìm các giá trị mới, chúng tôi sử dụng vòng lặp for để lặp qua các hàng để tìm giá trị cao nhất và thấp nhất rồi nối chúng vào bảng mới của chúng tôi. Chúng tôi cũng tìm các giá trị chỉ mục của chúng để chúng tôi có thể xác định và nối thêm năm của các giá trị đó
  • Cuối cùng, chúng tôi muốn tìm sự thay đổi dự kiến ​​về dân số được biểu thị bằng phần trăm trong giai đoạn 2020–2100. Chúng tôi tính toán điều này với công thức pop_2100 - pop_2020 / pop_2020 *100

Hình ảnh của tác giả

Bây giờ chúng tôi có một bảng với một số tóm tắt về dữ liệu dân số. Xem dữ liệu trong danh sách 2D không vừa mắt lắm, vì vậy để minh họa, tôi cho thấy bảng mà chúng tôi đã tạo trông như thế nào nếu bạn xem nó ở dạng bảng

Hình ảnh của tác giả

Danh sách tập hợp con để trực quan hóa

Từ bảng này, chúng ta có thể vẽ một số biểu đồ để hình dung dân số dự kiến. Vẽ tất cả 197 quốc gia trong một cốt truyện nhanh chóng khiến cốt truyện quá dài và khó đọc. Thay vào đó, chúng ta có thể tập hợp các phần của bảng và tạo các ô nhỏ hơn. Ở đây, chúng tôi sẽ tập hợp các quốc gia có mức tăng dân số lớn nhất và mức giảm dân số lớn nhất cho một ô và chúng tôi sẽ tập hợp tất cả các quốc gia châu Âu cho một ô khác

Tập con tăng dân số lớn nhất và giảm dân số lớn nhất

Đối với biểu đồ đầu tiên, chúng tôi chỉ cần sắp xếp danh sách 2D theo giá trị của thay đổi tương đối, được lưu trữ trong cột 6 (chỉ mục 5). Chúng tôi sử dụng sorted() để thực hiện việc này và chuyển hàm lambda cho đối số chính

Hình ảnh của tác giả

Biểu đồ cho thấy rằng chúng ta có thể mong đợi thấy sự gia tăng dân số lớn nhất ở các nước châu Phi và sự suy giảm dân số lớn nhất ở các nước châu Âu, ngoại trừ Jamaica sẽ có mức giảm lớn nhất trong tất cả các quốc gia

Hình ảnh của tác giả

Các quốc gia tập hợp con ở Châu Âu

Để tạo một tập hợp con gồm các quốc gia Châu Âu, chúng tôi tạo thủ công một danh sách có tất cả các quốc gia ở Châu Âu và lặp qua danh sách pop_exp_dev để tìm bất kỳ phần tử nào khớp với các quốc gia trong danh sách Châu Âu

Hình ảnh của tác giả

Tạo một biểu đồ thanh ngang, chúng ta có thể thấy rằng phần lớn các quốc gia ở Châu Âu dự đoán dân số sẽ giảm vào năm 2100

Hình ảnh của tác giả

Chuẩn hóa bảng so sánh sự phát triển dân số giữa các nước

Vì một số quốc gia có dân số đông và một số quốc gia có dân số nhỏ nên khó so sánh sự phát triển dân số của họ. Chúng ta có thể giải quyết vấn đề này bằng cách bình thường hóa các giá trị dân số. Chúng tôi sẽ thực hiện việc này bằng cách đặt năm 2020 làm năm chỉ số và tất cả các năm khác sẽ được trình bày liên quan đến năm chỉ số này. Dân số của mỗi năm được chia cho dân số của năm chỉ số và nhân với 100

Hình ảnh của tác giả

Như bạn có thể thấy trong kết quả, năm 2020 được đặt làm năm chỉ số và có giá trị 100. Dân số của các năm khác được trình bày dưới dạng phần trăm thay đổi so với dân số vào năm 2020

Sau khi dữ liệu dân số được chuẩn hóa, chúng tôi có thể chọn các quốc gia để vẽ biểu đồ bằng cách đặt lại danh sách như được hiển thị trước đây. Ở đây, chúng tôi vẽ sơ đồ phát triển dân số của Úc, Nhật Bản, Moldova, Thụy Điển, Vương quốc Anh và Hoa Kỳ. Trong số các quốc gia này, Úc dự kiến ​​sẽ có mức tăng dân số lớn nhất, tiếp theo là Hoa Kỳ, Thụy Điển và Vương quốc Anh. Cả Nhật Bản và Moldova dự kiến ​​​​sẽ chứng kiến ​​​​sự suy giảm dân số của họ

Hình ảnh của tác giả

Sự kết luận

Để làm việc với dữ liệu lộn xộn hoặc thực hiện các phân tích nâng cao hơn, chắc chắn tôi sẽ sử dụng Pandas. Trên thực tế, tôi không khuyến nghị bất kỳ ai kết hợp cách giải quyết này vào quy trình làm việc thực tế của họ vì nó không phải là cách tối ưu để phân tích dữ liệu. Ví dụ: để viết mã hiệu quả, tốt nhất là tránh các vòng lặp for và vector hóa các thao tác của bạn. Tuy nhiên, tôi nhận thấy rằng việc thực hiện phân tích sơ bộ về dữ liệu dân số này đã giúp tôi nắm bắt tốt hơn các chức năng cơ bản của python, chẳng hạn như cách truy cập các mục và phần tử nhất định trong danh sách hai chiều bằng cách sử dụng các vòng lặp for đơn giản hoặc lồng nhau. Và cách tạo và nối các mục vào danh sách hai chiều mới bằng vòng lặp for. Tôi hy vọng bạn thấy những ví dụ này hữu ích

*Dữ liệu được sử dụng trong bài viết này dựa trên tài liệu miễn phí từ Liên Hợp Quốc thông qua GAPMINDER. ORG, CC-BẰNG GIẤY PHÉP

Tại sao bạn nên vector hóa mã của mình trong R

Sử dụng gói microbenchmark trong R để so sánh hiệu quả giữa các hoạt động được vector hóa và các vòng lặp for

hướng tới khoa học dữ liệu. com

Cách dễ dàng truy cập và tải xuống dữ liệu công khai từ các tổ chức thống kê quốc gia

Hướng dẫn về giao diện API PxWeb trong R, sử dụng gói pxweb

hướng tới khoa học dữ liệu. com

5 cách hiểu sai phổ biến về giá trị P

Tránh những điều này khi giải thích và báo cáo kết quả của bạn

hướng tới khoa học dữ liệu. com

Nếu bạn thích đọc những câu chuyện như thế này và muốn hỗ trợ tôi với tư cách là một nhà văn, hãy cân nhắc đăng ký để trở thành thành viên Medium. Đó là 5 đô la một tháng, cho phép bạn truy cập không giới hạn vào các câu chuyện trên Phương tiện. Nếu bạn đăng ký bằng liên kết của tôi, tôi sẽ kiếm được một khoản hoa hồng nhỏ

Thao tác dữ liệu với Python là gì?

Pandas là một thư viện thao tác dữ liệu và phân tích dữ liệu mã nguồn mở được viết bằng python . Pandas cung cấp cho bạn các cấu trúc dữ liệu và hàm để hoạt động liền mạch trên dữ liệu có cấu trúc. Cái tên Pandas đề cập đến “Dữ liệu bảng điều khiển”, có nghĩa là một bộ dữ liệu có cấu trúc. Pandas có hai lớp chính để làm việc, DataFrame và Series.

thao tác dữ liệu với ví dụ là gì?

Thao tác dữ liệu là quá trình thay đổi hoặc chỉnh sửa dữ liệu để làm cho dữ liệu dễ đọc và có tổ chức hơn . Ví dụ: bạn có thể sắp xếp dữ liệu theo thứ tự bảng chữ cái để đẩy nhanh quá trình tìm kiếm thông tin hữu ích. Một ví dụ khác về thao tác dữ liệu là quản lý trang web.

Thao tác dữ liệu trong mã hóa là gì?

Thao tác dữ liệu là quá trình trích xuất thông tin và áp dụng logic cho thông tin đó để tạo ra một tập hợp dữ liệu hoàn toàn khác . Nói cách khác, dữ liệu được sửa đổi khi nó được thao tác và sau đó được lưu trữ ở cùng một vị trí.

Python có tốt cho thao tác dữ liệu không?

Thật tuyệt vời khi phân tích dữ liệu và xử lý dữ liệu. Pandas cung cấp khả năng kiểm soát thao tác dữ liệu . NumPy là một thư viện miễn phí để tính toán số. Nó cung cấp các hàm toán học cấp cao cùng với các thao tác dữ liệu.