Vòng lặp để tạo nhiều khung dữ liệu Python
Trong hướng dẫn trước, chúng ta đã đề cập đến kiến thức cơ bản về vòng lặp Python, tìm hiểu cách lặp qua danh sách và danh sách của danh sách. Nhưng có nhiều vòng lặp for hơn là lặp qua các danh sách và trong công việc khoa học dữ liệu trong thế giới thực, bạn có thể muốn sử dụng các vòng lặp for với các cấu trúc dữ liệu khác, bao gồm mảng numpy và DataFrames gấu trúc Show
Hướng dẫn này bắt đầu với cách sử dụng vòng lặp for để lặp qua các cấu trúc dữ liệu phổ biến của Python ngoài danh sách (như bộ dữ liệu và từ điển). Sau đó, chúng ta sẽ đi sâu vào việc sử dụng vòng lặp for song song với các thư viện khoa học dữ liệu phổ biến của Python như 1, 2 và 3. Chúng ta cũng sẽ xem xét kỹ hơn về hàm 4 và nó hữu ích như thế nào khi viết các vòng lặpĐánh giá nhanh. Python cho vòng lặpVòng lặp for là một câu lệnh lập trình yêu cầu Python lặp qua một tập hợp các đối tượng, thực hiện cùng một thao tác trên từng đối tượng theo trình tự. Cú pháp cơ bản là
Mỗi lần Python lặp qua vòng lặp, biến 5 sẽ nhận giá trị của đối tượng tiếp theo trong chuỗi của chúng ta là 6 và Python sẽ thực thi mã mà chúng ta đã viết trên từng đối tượng từ 6 theo thứ tựBây giờ, hãy đi sâu vào cách sử dụng vòng lặp for với các loại cấu trúc dữ liệu khác nhau. Chúng ta sẽ bỏ qua các danh sách vì chúng đã được trình bày trong phần hướng dẫn trước; Cấu trúc dữ liệubộ dữ liệuTuples là trình tự, giống như danh sách. Sự khác biệt giữa bộ dữ liệu và danh sách là bộ dữ liệu là bất biến; . Tuples cũng sử dụng dấu ngoặc đơn thay vì dấu ngoặc vuông Bất kể những khác biệt này, việc lặp qua các bộ dữ liệu rất giống với danh sách
Nếu chúng ta có một danh sách các bộ dữ liệu, chúng ta có thể truy cập các phần tử riêng lẻ trong mỗi bộ dữ liệu trong danh sách của mình bằng cách đưa chúng vào cả hai dưới dạng biến trong vòng lặp for, như vậy
từ điểnNgoài danh sách và bộ dữ liệu, từ điển là một loại dữ liệu Python phổ biến khác mà bạn có thể gặp phải khi làm việc với dữ liệu và vòng lặp for cũng có thể lặp qua từ điển. Từ điển Python bao gồm các cặp khóa-giá trị, vì vậy trong mỗi vòng lặp, có hai phần tử chúng ta cần truy cập (khóa và giá trị). Thay vì sử dụng 8 như chúng ta làm với danh sách, để lặp qua cả hai khóa và giá trị tương ứng cho mỗi cặp khóa-giá trị, chúng ta cần gọi phương thức 9Ví dụ: hãy tưởng tượng chúng ta có một từ điển tên là 0 chứa cả mã cổ phiếu và giá cổ phiếu tương ứng. Chúng tôi sẽ sử dụng phương pháp 9 trong từ điển của chúng tôi để tạo khóa và giá trị cho mỗi lần lặp lại
Lưu ý rằng khóa tên và giá trị là hoàn toàn tùy ý; DâyNhư đã đề cập trong hướng dẫn nhập môn, vòng lặp for cũng có thể lặp qua từng ký tự trong chuỗi. Là một đánh giá nhanh, đây là cách nó hoạt động
Mảng NumpyBây giờ, hãy xem cách vòng lặp có thể được sử dụng với các gói khoa học dữ liệu phổ biến của Python và các kiểu dữ liệu của chúng Chúng ta sẽ bắt đầu bằng cách xem cách sử dụng vòng lặp for với mảng 1, vì vậy hãy bắt đầu bằng cách tạo một số mảng số ngẫu nhiên
Việc lặp qua một mảng có nhiều mảng một chiều rất giống với việc lặp qua một danh sách 0 1Bây giờ, nếu chúng ta muốn lặp qua một mảng hai chiều thì sao? 2 3Mảng hai chiều được xây dựng từ một cặp mảng một chiều. Để truy cập mọi phần tử thay vì mọi mảng, chúng ta có thể sử dụng hàm numpy 3, một đối tượng lặp đa chiều lấy một mảng làm đối số của nóTrong đoạn mã dưới đây, chúng ta sẽ viết một vòng lặp for lặp qua từng phần tử bằng cách chuyển 4, mảng hai chiều của chúng ta, làm đối số cho 3 4_______8_______5Như chúng ta có thể thấy, điều này đầu tiên liệt kê tất cả các phần tử của x, sau đó là tất cả các phần tử của y Nhớ. Khi lặp qua các cấu trúc dữ liệu khác nhau này, từ điển yêu cầu một phương thức, các mảng có nhiều mảng yêu cầu một hàm Khung dữ liệu gấu trúcKhi chúng tôi làm việc với dữ liệu bằng Python, chúng tôi thường sử dụng 2 DataFrames. Và may mắn thay, chúng ta cũng có thể sử dụng các vòng lặp for để lặp qua các vòng lặp đóHãy thực hành làm điều này trong khi làm việc với một tệp CSV nhỏ ghi lại GDP, thành phố thủ đô và dân số của sáu quốc gia khác nhau. Chúng tôi sẽ đọc phần này vào DataFrame của gấu trúc bên dưới Pandas hoạt động hơi khác so với numpy, vì vậy chúng tôi sẽ không thể lặp lại quy trình numpy mà chúng tôi đã học được. Nếu chúng tôi cố gắng lặp lại một DataFrame của gấu trúc như chúng tôi sẽ làm với một mảng có nhiều mảng, điều này sẽ chỉ in ra các tên cột 6 7Thay vào đó, chúng tôi cần đề cập rõ ràng rằng chúng tôi muốn lặp lại các hàng của DataFrame. Chúng tôi thực hiện việc này bằng cách gọi phương thức 7 trên DataFrame và in nhãn hàng và dữ liệu hàng, trong đó một hàng là toàn bộ chuỗi gấu trúc 8 9Chúng tôi cũng có thể truy cập các giá trị cụ thể từ chuỗi gấu trúc. Giả sử chúng ta chỉ muốn in thủ đô của mỗi quốc gia. Chúng tôi có thể chỉ định rằng chúng tôi chỉ muốn đầu ra từ cột “Vốn” như vậy 0_______9_______1Để tiến xa hơn những bản in đơn giản, hãy thêm một cột bằng vòng lặp for. Hãy thêm cột GDP bình quân đầu người. Hãy nhớ rằng 8 dựa trên nhãn. Trong mã bên dưới, chúng tôi sẽ thêm cột và tính toán nội dung của nó cho mỗi quốc gia bằng cách chia tổng GDP của quốc gia đó cho dân số của quốc gia đó và nhân kết quả với một nghìn tỷ (vì số GDP được liệt kê theo đơn vị nghìn tỷ) 2 3Đối với mỗi hàng trong khung dữ liệu của chúng tôi, chúng tôi đang tạo một nhãn mới và đặt dữ liệu hàng bằng tổng GDP chia cho dân số của quốc gia và nhân với 1 nghìn đô la cho hàng nghìn đô la Hàm stocks = { 'AAPL': 187.31, 'MSFT': 124.06, 'FB': 183.50 } for key, value in stocks.items() : print(key + " : " + str(value)) 4Chúng tôi đã thấy cách chúng tôi có thể sử dụng các vòng lặp để lặp qua bất kỳ chuỗi hoặc cấu trúc dữ liệu nào. Nhưng nếu chúng ta muốn lặp lại các chuỗi này theo một thứ tự cụ thể hoặc trong một số lần cụ thể thì sao? Điều này có thể được thực hiện với chức năng 4 tích hợp sẵn của Python. Tùy thuộc vào số lượng đối số bạn chuyển đến hàm, bạn có thể quyết định vị trí bắt đầu và kết thúc của chuỗi số đó cũng như mức độ chênh lệch giữa số này với số tiếp theo. Lưu ý rằng, tương tự như danh sách, số đếm của hàm 4 bắt đầu từ 0 chứ không phải từ 1Có ba cách chúng ta có thể gọi 4
print("data science")
for c in "data science":
print(c)
|