Cách trích xuất hàng và cột trong python

Có nhiều cách để chọn và lập chỉ mục các hàng và cột từ Pandas DataFrames. Tôi thấy các hướng dẫn trực tuyến tập trung vào các lựa chọn nâng cao của các lựa chọn hàng và cột hơi phức tạp đối với các yêu cầu của tôi, nhưng việc thành thạo các bộ chọn iloc, loc và ix của Pandas thực sự có thể được thực hiện khá đơn giản

Tùy chọn lựa chọn

Có ba tùy chọn chính để đạt được các hoạt động lựa chọn và lập chỉ mục trong Pandas, điều này có thể gây nhầm lẫn. Ba trường hợp lựa chọn và phương pháp được đề cập trong bài đăng này là

  1. Chọn dữ liệu theo số hàng [. iloc]
  2. Chọn dữ liệu theo nhãn hoặc theo câu lệnh điều kiện [. lộc]
  3. Chọn lọc theo phương pháp kết hợp [. ix] [hiện không dùng nữa trong Pandas 0. 20. 1]

Thiết lập dữ liệu

Bài đăng trên blog này, lấy cảm hứng từ các hướng dẫn khác, mô tả các hoạt động lựa chọn với các hoạt động này. Hướng dẫn phù hợp với tình hình khoa học dữ liệu nói chung, trong đó, tôi thường thấy mình

  1. Mỗi hàng trong khung dữ liệu của bạn đại diện cho một mẫu dữ liệu
  2. Mỗi cột là một biến và thường được đặt tên. Tôi hiếm khi chọn các cột không có tên của chúng
  3. Tôi cần nhanh chóng và thường xuyên chọn các hàng có liên quan từ khung dữ liệu cho các hoạt động mô hình hóa và trực quan hóa

Đối với những người chưa quen, thư viện Pandas dành cho Python cung cấp các công cụ phân tích dữ liệu và cấu trúc dữ liệu hiệu suất cao, dễ sử dụng để xử lý dữ liệu dạng bảng trong “sê-ri” và trong “khung dữ liệu”. Thật tuyệt vời khi giúp quá trình xử lý dữ liệu của bạn dễ dàng hơn và trước đây tôi đã viết về việc nhóm và tóm tắt dữ liệu với Pandas

Tóm tắt các phương pháp iloc và loc được thảo luận trong bài đăng trên blog này. iloc và loc là các hoạt động để truy xuất dữ liệu từ Pandas dataframes

Phương pháp lựa chọn và lập chỉ mục cho Pandas DataFrames

Đối với những dữ liệu khám phá này, chúng tôi sẽ cần một số dữ liệu mẫu – Tôi đã tải bộ dữ liệu mẫu uk-500 xuống từ www. briandunning. com. Dữ liệu này chứa tên giả, địa chỉ, công ty và số điện thoại của các nhân vật hư cấu ở Vương quốc Anh. Để theo dõi, bạn có thể tải về. tệp csv tại đây. Tải dữ liệu như sau [các sơ đồ ở đây lấy từ sổ ghi chép Jupyter trong bản cài đặt Anaconda Python]

Xem mã trên Gist

Dữ liệu mẫu được tải từ tệp CSV

1. Pandas iloc lựa chọn dữ liệu

Trình lập chỉ mục iloc cho Pandas Dataframe được sử dụng để lập chỉ mục/lựa chọn dựa trên vị trí số nguyên theo vị trí

The iloc indexer syntax is data.iloc[, ], which is sure to be a source of confusion for R users. “iloc” in pandas is used to select rows and columns by number, in the order that they appear in the data frame. You can imagine that each row has a row number from 0 to the total rows [data.shape[0]]  and iloc[] allows selections based on these numbers. The same applies for columns [ranging from 0 to data.shape[1] ]

Có hai "đối số" để iloc - bộ chọn hàng và bộ chọn cột. Ví dụ

Xem mã trên Gist

Nhiều cột và hàng có thể được chọn cùng nhau bằng cách sử dụng. người lập chỉ mục iloc

Xem mã trên Gist

Có hai vấn đề cần nhớ khi sử dụng iloc theo cách này

  1. Lưu ý rằng. iloc trả về Sê-ri Pandas khi một hàng được chọn và Khung dữ liệu Pandas khi nhiều hàng được chọn hoặc nếu bất kỳ cột nào đầy đủ được chọn. Để chống lại điều này, hãy chuyển một danh sách có giá trị đơn nếu bạn yêu cầu đầu ra DataFrame

Khi đang sử dụng. lộc, hoặc. iloc, bạn có thể kiểm soát định dạng đầu ra bằng cách chuyển danh sách hoặc giá trị đơn lẻ tới bộ chọn

  • Khi chọn nhiều cột hoặc nhiều hàng theo cách này, hãy nhớ rằng trong phần lựa chọn của bạn,. g. [1. 5], các hàng/cột đã chọn sẽ chạy từ số đầu tiên đến một trừ đi số thứ hai. e. g. [1. 5] sẽ đi 1,2,3,4. , [x,y] đi từ x đến y-1
  • Trong thực tế, tôi hiếm khi sử dụng bộ chỉ mục iloc, trừ khi tôi muốn cái đầu tiên [. iloc[0] ] hoặc cái cuối cùng [. iloc[-1] ]  hàng của khung dữ liệu

    2. Pandas loc lựa chọn dữ liệu

    Bộ chỉ mục vị trí của Pandas có thể được sử dụng với DataFrames cho hai trường hợp sử dụng khác nhau

    • a. ] Chọn hàng theo nhãn/chỉ mục
    • b. ] Chọn các hàng có tra cứu boolean/có điều kiện

    The loc indexer is used with the same syntax as iloc: data.loc[, ] .

    2a. Lập chỉ mục dựa trên nhãn / Dựa trên chỉ mục bằng cách sử dụng. lộc

    Selections using the loc method are based on the index of the data frame [if any]. Where the index is set on a DataFrame, using df.set_index[], the .loc method directly selects based on index values of any rows. For example, setting the index of our test data frame to the persons “last_name”:

    Xem mã trên Gist

    Họ được đặt làm Chỉ mục được đặt trên khung dữ liệu mẫu

    Now with the index set, we can directly select rows for different “last_name” values using .loc[]  – either singly, or in multiples. For example:

    Chọn một hoặc nhiều hàng bằng cách sử dụng. lựa chọn chỉ mục loc với gấu trúc. Lưu ý rằng ví dụ đầu tiên trả về một chuỗi và ví dụ thứ hai trả về DataFrame. Bạn có thể đạt được Khung dữ liệu một cột bằng cách chuyển danh sách một phần tử tới. hoạt động định vị

    Chọn các cột có. loc bằng tên của các cột. Trong hầu hết công việc dữ liệu của tôi, tôi thường đặt tên cột và sử dụng các lựa chọn được đặt tên này

    Khi sử dụng. loc, các cột được gọi bằng tên bằng cách sử dụng danh sách các chuỗi hoặc “. ” lát

    Bạn có thể chọn phạm vi nhãn chỉ mục – dữ liệu lựa chọn. loc[‘Bruch’. 'Julio'] sẽ trả về tất cả các hàng trong khung dữ liệu giữa các mục nhập chỉ mục cho "Bruch" và "Julio". Các ví dụ sau bây giờ sẽ có ý nghĩa

    Xem mã trên Gist

    Lưu ý rằng trong ví dụ trước, dữ liệu. loc[487] [hàng có giá trị chỉ mục 487] không bằng dữ liệu. iloc[487] [hàng thứ 487 trong dữ liệu]. Chỉ mục của DataFrame có thể không theo thứ tự số và/hoặc chuỗi hoặc đa giá trị

    2b. Pandas Loc Boolean / Lập chỉ mục logic

    Conditional selections with boolean arrays using data.loc[] is the most common method that I use with Pandas DataFrames. With boolean indexing or logical selection, you pass an array or Series of True/False values to the .loc indexer to select the rows where your Series has True values.

    Trong hầu hết các trường hợp sử dụng, bạn sẽ thực hiện các lựa chọn dựa trên giá trị của các cột khác nhau trong tập dữ liệu của mình

    Ví dụ: câu lệnh data['first_name'] == 'Antonio'] tạo ra Chuỗi Pandas có giá trị Đúng/Sai cho mọi hàng trong Khung dữ liệu 'dữ liệu', trong đó có các giá trị "Đúng" cho các hàng chứa first_name . Các loại mảng boolean này có thể được chuyển trực tiếp đến. loc chỉ mục như vậy

    Sử dụng chuỗi boolean True/False để chọn các hàng trong khung dữ liệu pandas – tất cả các hàng có tên “Antonio” đều được chọn

    Như trước đây, một đối số thứ hai có thể được chuyển đến. loc để chọn các cột cụ thể ra khỏi khung dữ liệu. Một lần nữa, các cột được gọi theo tên cho bộ chỉ mục loc và có thể là một chuỗi đơn, danh sách các cột hoặc một lát “. " hoạt động

    Có thể đạt được việc chọn nhiều cột với loc bằng cách chuyển tên cột cho đối số thứ hai của. lộc[]

    Lưu ý rằng khi chọn cột, nếu chỉ chọn một cột, thì. toán tử loc trả về một Sê-ri. Đối với DataFrame một cột, hãy sử dụng danh sách một phần tử để giữ định dạng DataFrame, chẳng hạn

    Nếu các lựa chọn của một cột được thực hiện dưới dạng một chuỗi, một chuỗi sẽ được trả về từ. lộc. Vượt qua một danh sách để lấy lại DataFrame

    Đảm bảo rằng bạn hiểu các ví dụ bổ sung sau đây về. lựa chọn loc cho rõ ràng

    Xem mã trên Gist

    Các lựa chọn logic và Sê-ri boolean cũng có thể được chuyển đến bộ chỉ mục [] chung của Khung dữ liệu gấu trúc và sẽ cho kết quả tương tự. dữ liệu. loc[data[‘id’] == 9] == data[data[‘id’] == 9]

    3. Chọn dữ liệu gấu trúc bằng ix

    Ghi chú. Bộ chỉ mục ix không còn được dùng trong các phiên bản gần đây của Pandas, bắt đầu từ phiên bản 0. 20. 1

    Bộ chỉ mục ix[] là sự kết hợp của. định vị và. iloc. Nói chung, ix dựa trên nhãn và hoạt động giống như. người lập chỉ mục loc. Tuy nhiên,. ix cũng hỗ trợ các lựa chọn kiểu số nguyên [như trong. iloc] nơi đã truyền một số nguyên. Điều này chỉ hoạt động khi chỉ mục của DataFrame không dựa trên số nguyên. ix sẽ chấp nhận bất kỳ đầu vào nào của. định vị và. iloc

    Phức tạp hơn một chút, tôi thích sử dụng rõ ràng. iloc và. loc để tránh kết quả không mong muốn

    như một ví dụ

    Xem mã trên Gist

    Đặt giá trị trong DataFrames bằng cách sử dụng. lộc

    Với một chút thay đổi về cú pháp, bạn thực sự có thể cập nhật DataFrame của mình theo cùng một câu lệnh khi bạn chọn và lọc bằng cách sử dụng. người lập chỉ mục loc. Mẫu cụ thể này cho phép bạn cập nhật các giá trị trong các cột tùy thuộc vào các điều kiện khác nhau. Thao tác cài đặt không tạo bản sao của khung dữ liệu mà chỉnh sửa dữ liệu gốc

    như một ví dụ

    Xem mã trên Gist

    Đó là những điều cơ bản về lập chỉ mục và lựa chọn với Pandas. Nếu bạn đang tìm kiếm thêm, hãy xem qua. và. tại các hoạt động cho một số trình truy cập giá trị nâng cao hiệu suất hơn trong Tài liệu Pandas và hãy xem việc chọn theo các hàm có thể gọi để có thêm niềm vui về iloc và loc

    Chủ Đề