Bạn có thể lập chỉ mục một bộ trong python không?

Trong Chương 2, chúng ta đã xem xét chi tiết các phương thức và công cụ để truy cập, thiết lập và sửa đổi các giá trị trong mảng NumPy. Chúng bao gồm lập chỉ mục [e. g. ,

True
9], cắt lát [e. g. ,
data.keys[]
0], che dấu [e. g. ,
data.keys[]
1], lập chỉ mục ưa thích [e. g. ,
data.keys[]
2], và sự kết hợp của chúng [e. g. ,
data.keys[]
3]. Ở đây chúng ta sẽ xem xét các phương tiện tương tự để truy cập và sửa đổi các giá trị trong các đối tượng
data.keys[]
4 và
data.keys[]
5 của Pandas. Nếu bạn đã sử dụng các mẫu NumPy, các mẫu tương ứng trong Pandas sẽ cảm thấy rất quen thuộc, mặc dù có một số điều kỳ quặc cần lưu ý

Chúng ta sẽ bắt đầu với trường hợp đơn giản của đối tượng

data.keys[]
4 một chiều, sau đó chuyển sang đối tượng
data.keys[]
5 hai chiều phức tạp hơn

Lựa chọn dữ liệu theo chuỗi¶

Như chúng ta đã thấy trong phần trước, một đối tượng

data.keys[]
4 hoạt động theo nhiều cách giống như một mảng NumPy một chiều và theo nhiều cách giống như một từ điển Python tiêu chuẩn. Nếu chúng ta ghi nhớ hai phép loại suy chồng chéo này, nó sẽ giúp chúng ta hiểu các kiểu lập chỉ mục và lựa chọn dữ liệu trong các mảng này

Sê-ri dưới dạng từ điển¶

Giống như một từ điển, đối tượng

data.keys[]
4 cung cấp ánh xạ từ tập hợp các khóa tới tập hợp các giá trị

Trong 1]

data.keys[]
1

Ra[1]

data.keys[]
2

Trong 2]

data.keys[]
3

Ra[2]

data.keys[]
4

Chúng ta cũng có thể sử dụng các biểu thức và phương thức Python giống như từ điển để kiểm tra các khóa/chỉ mục và giá trị

Trong 3]

data.keys[]
5

Ra[3]

True

Trong [4]

data.keys[]

Ra[4]

data.keys[]
8

Trong [5]

data.keys[]
9

Ra[5]

data.keys[]
0

Các đối tượng

data.keys[]
4 thậm chí có thể được sửa đổi bằng cú pháp giống như từ điển. Giống như bạn có thể mở rộng một từ điển bằng cách gán cho một khóa mới, bạn có thể mở rộng một
data.keys[]
4 bằng cách gán cho một giá trị chỉ mục mới

Trong [6]

data.keys[]
20

Ra[6]

data.keys[]
21

Khả năng thay đổi dễ dàng này của các đối tượng là một tính năng thuận tiện. dưới vỏ bọc, Pandas đang đưa ra quyết định về cách bố trí bộ nhớ và sao chép dữ liệu có thể cần phải thực hiện;

Chuỗi dưới dạng mảng một chiều¶

Một

data.keys[]
4 xây dựng trên giao diện giống như từ điển này và cung cấp lựa chọn mục kiểu mảng thông qua các cơ chế cơ bản giống như mảng NumPy – đó là, lát, tạo mặt nạ và lập chỉ mục ưa thích. Ví dụ về những điều này như sau

Trong [7]

data.keys[]
22

Ra[7]

data.keys[]
23

Trong [8]

data.keys[]
24

Ra[8]

data.keys[]
25

Trong [9]

data.keys[]
26

Ra[9]

data.keys[]
27

Trong [10]

data.keys[]
28

Ra[10]

data.keys[]
29

Trong số này, cắt lát có thể là nguồn gốc của sự nhầm lẫn nhất. Lưu ý rằng khi cắt với một chỉ số rõ ràng [i. e. ,

data.keys[]
83], chỉ mục cuối cùng được bao gồm trong lát cắt, trong khi khi cắt lát với chỉ mục ẩn [i. e. ,
data.keys[]
84], chỉ mục cuối cùng bị loại khỏi lát cắt

Người lập chỉ mục. loc, iloc và ix¶

Các quy ước cắt và lập chỉ mục này có thể là một nguồn gây nhầm lẫn. Ví dụ: nếu

data.keys[]
4 của bạn có chỉ mục số nguyên rõ ràng, thao tác lập chỉ mục như
data.keys[]
86 sẽ sử dụng chỉ mục rõ ràng, trong khi thao tác cắt lát như
data.keys[]
87 sẽ sử dụng chỉ mục kiểu Python ẩn

Trong [11]

data.keys[]
30

Ra[11]

data.keys[]
31

Trong [12]

data.keys[]
32

Ra[12]

data.keys[]
33

Trong [13]

data.keys[]
34

Ra[13]

data.keys[]
35

Do sự nhầm lẫn tiềm ẩn này trong trường hợp các chỉ mục số nguyên, Pandas cung cấp một số thuộc tính chỉ mục đặc biệt hiển thị rõ ràng các lược đồ lập chỉ mục nhất định. Đây không phải là các phương thức chức năng, mà là các thuộc tính hiển thị một giao diện cắt cụ thể cho dữ liệu trong

data.keys[]
4

Đầu tiên, thuộc tính

data.keys[]
89 cho phép lập chỉ mục và cắt luôn tham chiếu chỉ mục rõ ràng

Trong [14]

data.keys[]
36

Ra[14]

data.keys[]
33

Trong [15]

data.keys[]
38

Ra[15]

data.keys[]
39

Thuộc tính

data.keys[]
90 cho phép lập chỉ mục và cắt luôn tham chiếu chỉ mục kiểu Python ẩn

Trong [16]

data.keys[]
40

Ra[16]

data.keys[]
41

Trong [17]

data.keys[]
42

Ra[17]

data.keys[]
35

Thuộc tính lập chỉ mục thứ ba,

data.keys[]
91, là sự kết hợp của cả hai và đối với các đối tượng
data.keys[]
4 tương đương với việc lập chỉ mục dựa trên
data.keys[]
93 tiêu chuẩn. Mục đích của bộ chỉ mục
data.keys[]
91 sẽ trở nên rõ ràng hơn trong ngữ cảnh của các đối tượng
data.keys[]
5, mà chúng ta sẽ thảo luận sau

Một nguyên tắc hướng dẫn của mã Python là "rõ ràng là tốt hơn ngầm. " Bản chất rõ ràng của

data.keys[]
89 và
data.keys[]
90 làm cho chúng rất hữu ích trong việc duy trì mã rõ ràng và dễ đọc; đặc biệt trong trường hợp chỉ mục số nguyên, tôi khuyên bạn nên sử dụng cả hai để làm cho mã dễ đọc và dễ hiểu hơn, đồng thời ngăn các lỗi tinh vi do hỗn hợp

Lựa chọn dữ liệu trong DataFrame¶

Nhớ lại rằng một

data.keys[]
5 hoạt động theo nhiều cách giống như một mảng hai chiều hoặc có cấu trúc và theo những cách khác giống như một từ điển gồm các cấu trúc
data.keys[]
4 chia sẻ cùng một chỉ mục. Những phép loại suy này có thể hữu ích để ghi nhớ khi chúng ta khám phá lựa chọn dữ liệu trong cấu trúc này

DataFrame dưới dạng từ điển¶

Phép loại suy đầu tiên mà chúng ta sẽ xem xét là

data.keys[]
5 như một từ điển của các đối tượng liên quan đến
data.keys[]
4. Hãy quay lại ví dụ của chúng ta về diện tích và dân số của các bang

Trong [18]

data.keys[]
44

Hết[18]

areapopCalifornia42396738332521Florida17031219552860Illinois14999512882135New York14129719651127Texas69566226448193

Có thể truy cập

data.keys[]
4 riêng lẻ tạo nên các cột của
data.keys[]
5 thông qua lập chỉ mục kiểu từ điển của tên cột

Trong 19]

data.keys[]
45

Hết[19]

data.keys[]
46

Tương tự, chúng ta có thể sử dụng quyền truy cập kiểu thuộc tính với tên cột là chuỗi

Trong 20]

data.keys[]
47

Hết[20]

data.keys[]
46

Truy cập cột kiểu thuộc tính này thực sự truy cập vào cùng một đối tượng như truy cập kiểu từ điển

Trong [21]

data.keys[]
49

Hết[21]

True

Mặc dù đây là cách viết tắt hữu ích, hãy nhớ rằng nó không hoạt động trong mọi trường hợp. Ví dụ: nếu tên cột không phải là chuỗi hoặc nếu tên cột xung đột với các phương thức của

data.keys[]
5, thì không thể truy cập kiểu thuộc tính này. Ví dụ:
data.keys[]
5 có phương thức
data.keys[]
06, vì vậy
data.keys[]
07 sẽ trỏ đến cột này thay vì cột
data.keys[]
08

Trong [22]

data.keys[]
51

Hết[22]

data.keys[]
52

Cụ thể, bạn nên tránh bị cám dỗ thử gán cột thông qua thuộc tính [i. e. , sử dụng

data.keys[]
09 thay vì
data.keys[]
200]

Giống như đối tượng

data.keys[]
4 đã thảo luận trước đó, cú pháp kiểu từ điển này cũng có thể được sử dụng để sửa đổi đối tượng, trong trường hợp này là thêm một cột mới

Trong [23]

data.keys[]
53

Hết[23]

khu vực mật độ dân sốCalifornia4239673833252190. 413926Florida17031219552860114. 806121Illinois1499951288213585. 883763New York14129719651127139. 076746Texas6956622644819338. 018740

Phần này hiển thị bản xem trước của cú pháp đơn giản của số học theo từng phần tử giữa các đối tượng

data.keys[]
4;

DataFrame dưới dạng mảng hai chiều¶

Như đã đề cập trước đây, chúng ta cũng có thể xem

data.keys[]
5 dưới dạng mảng hai chiều nâng cao. Chúng ta có thể kiểm tra mảng dữ liệu cơ bản thô bằng cách sử dụng thuộc tính
data.keys[]
204

Trong [24]

data.keys[]
54

Ra[24]

data.keys[]
55

Với hình ảnh này, nhiều quan sát giống như mảng quen thuộc có thể được thực hiện trên chính

data.keys[]
5. Ví dụ: chúng ta có thể chuyển đổi toàn bộ
data.keys[]
5 để hoán đổi hàng và cột

Trong [25]

data.keys[]
56

Hết[25]

CaliforniaFloridaIllinoisNew YorkTexasarea4. 239670e+051. 703120e+051. 499950e+051. 412970e+056. 956620e+05pop3. 833252e+071. 955286e+071. 288214e+071. 965113e+072. 644819e+07mật độ9. 041393e+011. 148061e+028. 588376e+011. 390767e+023. 801874e+01

Tuy nhiên, khi nói đến việc lập chỉ mục cho các đối tượng

data.keys[]
5, rõ ràng là việc lập chỉ mục theo kiểu từ điển của các cột ngăn cản khả năng của chúng ta đơn giản coi nó là một mảng NumPy. Cụ thể, việc chuyển một chỉ mục cho một mảng sẽ truy cập một hàng

Trong [26]

data.keys[]
57

Hết[26]

data.keys[]
58

và chuyển một "chỉ mục" duy nhất tới một

data.keys[]
5 để truy cập một cột

Trong [27]

data.keys[]
45

Hết[27]

data.keys[]
46

Vì vậy, để lập chỉ mục kiểu mảng, chúng ta cần một quy ước khác. Ở đây, Pandas lại sử dụng các bộ chỉ mục

data.keys[]
89,
data.keys[]
90 và
data.keys[]
91 đã đề cập trước đó. Sử dụng bộ chỉ mục
data.keys[]
90, chúng ta có thể lập chỉ mục mảng bên dưới như thể nó là một mảng NumPy đơn giản [sử dụng chỉ mục kiểu Python ẩn], nhưng các nhãn cột và chỉ mục
data.keys[]
5 vẫn được duy trì trong kết quả

Trong [28]

True
1

Hết[28]

areapopCalifornia42396738332521Florida17031219552860Illinois14999512882135

Tương tự, sử dụng bộ chỉ mục

data.keys[]
89, chúng ta có thể lập chỉ mục dữ liệu cơ bản theo kiểu giống như mảng nhưng sử dụng tên cột và chỉ mục rõ ràng

Trong [29]

True
2

Hết[29]

areapopCalifornia42396738332521Florida17031219552860Illinois14999512882135

Bộ chỉ mục

data.keys[]
91 cho phép kết hợp hai cách tiếp cận này

Trong [30]

True
3

Ra[30]

areapopCalifornia42396738332521Florida17031219552860Illinois14999512882135

Hãy nhớ rằng đối với các chỉ mục số nguyên, bộ chỉ mục

data.keys[]
91 có thể có cùng nguồn gây nhầm lẫn như đã thảo luận đối với các đối tượng
data.keys[]
4 được lập chỉ mục số nguyên

Bất kỳ mẫu truy cập dữ liệu kiểu NumPy quen thuộc nào cũng có thể được sử dụng trong các bộ chỉ mục này. Ví dụ: trong trình chỉ mục

data.keys[]
89, chúng ta có thể kết hợp lập chỉ mục mặt nạ và ưa thích như sau

Trong [31]

True
4

Ra[31]

mật độ dân sốFlorida19552860114. 806121New York19651127139. 076746

Bất kỳ quy ước lập chỉ mục nào cũng có thể được sử dụng để đặt hoặc sửa đổi các giá trị;

Trong [32]

True
5

Ra[32]

khu vực mật độ dân sốCalifornia4239673833252190. 000000Florida17031219552860114. 806121Illinois1499951288213585. 883763New York14129719651127139. 076746Texas6956622644819338. 018740

Để xây dựng sự thông thạo của bạn trong thao tác dữ liệu Pandas, tôi khuyên bạn nên dành chút thời gian với một

data.keys[]
5 đơn giản và khám phá các kiểu lập chỉ mục, cắt, tạo mặt nạ và lập chỉ mục ưa thích được cho phép bởi các phương pháp lập chỉ mục khác nhau này

Các quy ước lập chỉ mục bổ sung¶

Có một vài quy ước lập chỉ mục bổ sung có vẻ mâu thuẫn với các cuộc thảo luận trước đó, tuy nhiên có thể rất hữu ích trong thực tế. Đầu tiên, trong khi lập chỉ mục đề cập đến các cột, cắt lát đề cập đến các hàng

Trong [33]

True
6

Ra[33]

khu vực mật độ dân sốFlorida17031219552860114. 806121Illinois1499951288213585. 883763

Các lát như vậy cũng có thể đề cập đến các hàng theo số thay vì theo chỉ mục

Trong [34]

True
7

Ra[34]

khu vực mật độ dân sốFlorida17031219552860114. 806121Illinois1499951288213585. 883763

Tương tự, các hoạt động tạo mặt nạ trực tiếp cũng được diễn giải theo hàng hơn là theo cột

Trong [35]

True
8

Ra[35]

khu vực mật độ dân sốFlorida17031219552860114. 806121New York14129719651127139. 076746

Hai quy ước này tương tự về mặt cú pháp với các quy ước trên mảng NumPy và mặc dù chúng có thể không khớp chính xác với khuôn mẫu của các quy ước Pandas, nhưng chúng vẫn khá hữu ích trong thực tế

Tôi có thể Tìm chỉ mục của phần tử trong tập hợp không?

Chỉ cần sử dụng numberList[data[key]] += 1 và bạn đã hoàn tất

Các bộ chưa được lập chỉ mục?

Tập hợp là tập hợp không có thứ tự, không thể thay đổi* và không được lập chỉ mục . * Ghi chú. Các mục trong bộ không thể thay đổi, nhưng bạn có thể xóa các mục và thêm các mục mới.

Tại sao set không được lập chỉ mục trong Python?

Set là một tập hợp các mục không có thứ tự và không được lập chỉ mục trong Python. Không có thứ tự có nghĩa là khi chúng ta hiển thị các phần tử của một tập hợp, nó sẽ xuất hiện theo thứ tự ngẫu nhiên. Không được lập chỉ mục có nghĩa là chúng ta không thể truy cập các phần tử của tập hợp bằng cách sử dụng các chỉ mục như chúng ta có thể làm trong danh sách và bộ dữ liệu .

Chủ Đề