Gấu trúc chuyển đổi giá trị phân loại thành giá trị Int

Gau Truc Chuyen Doi Gia Tri Phan Loai Thanh Gia Tri Int



Bộ dữ liệu để thực thi học máy bao gồm cả biến số và biến phân loại. Các biến phân loại là dữ liệu kiểu chuỗi mà con người dễ dàng hiểu được. Mặt khác, máy móc không thể hiểu đầu vào phân loại một cách trực tiếp. Do đó, nội dung phân loại phải được chuyển đổi thành các giá trị số mà máy móc có thể giải thích.

Các phương pháp chuyển đổi Categorical sang Int

Các kỹ thuật có sẵn trong “pandas” để chuyển đổi các giá trị phân loại thành int của DataFrame được cung cấp tại đây:

    • Phương thức DataFrame.replace ()
    • Phương thức DataFrame.apply (factorize ())

Chúng tôi sẽ sử dụng các phương pháp này trong bài viết này và giải thích chi tiết cách sử dụng cả hai phương pháp trong 'gấu trúc'.







Ví dụ # 1: Sử dụng phương thức Pandas Replace ()

Giá trị phân loại trong DataFrame có thể được chuyển đổi thành int bằng cách sử dụng phương thức pandas “DataFrame.replace ()”. Chúng ta sẽ tìm hiểu ở đây để sử dụng phương pháp này.



Chúng tôi đã sử dụng công cụ “Spyder” để thực thi kỹ thuật này một cách tối ưu bằng Python. Để bắt đầu viết script, hãy mở một tệp Python mới trong công cụ “Spyder”. Yêu cầu quan trọng nhất để viết script là nhập các thư viện thích hợp. Vì chúng ta phải triển khai phương pháp 'gấu trúc', chúng ta sẽ có 'nhập gấu trúc dưới dạng pd' để truy cập các tính năng của 'gấu trúc'. Sau đó, chúng tôi bắt đầu mã Python cốt lõi của mình. Chúng tôi đã tạo một DataFrame bằng phương thức “pd.DataFrame ()”. DataFrame được khởi tạo bởi ba cột “Tên”, “Bằng cấp” và “Thu nhập”. Tất cả các cột của DataFrame đều lưu trữ cùng một độ dài giá trị.



Cột đầu tiên, “Tên”, có tám giá trị là “bush”, “albert”, “harry”, “peter”, “emma”, “newton”, “smith” và “elsa”. Cột thứ hai, “Bằng”, cũng lưu trữ tám giá trị phân loại, đó là “BS”, “MS”, “MS”, “BS”, “BS”, “BS”, “MS” và “MS”. Cột cuối cùng “Thu nhập” có tám giá trị nguyên “60000”, “80000”, “75000”, “45000”, “56000”, “65000”, “55000” và “70000”. Chúng tôi đã tạo một đối tượng DataFrame “staff” để lưu trữ kết quả của việc gọi hàm “pd.DataFrame ()”. Để hiển thị DataFrame ban đầu của chúng tôi, chúng tôi đã sử dụng phương thức “print ()” với tên của DataFrame là “staff” làm tham số của nó trong dòng cuối cùng của tập lệnh.






Để xem kết quả đầu ra trên thiết bị đầu cuối, sử dụng nút “Chạy tệp” trên công cụ “Spyder” hoặc nhấn phím “Shift + Enter”. Kết quả hiển thị trên thiết bị đầu cuối cho thấy một DataFrame với ba cột đã được tạo thành công.


Bây giờ, DataFrame của chúng tôi đã được xây dựng, chúng tôi phải áp dụng kỹ thuật cần thiết cho nó. Phương thức pandas “DataFrame.replace ()” sẽ được sử dụng để chuyển đổi các giá trị phân loại của một cột được chỉ định thành các giá trị số nguyên để máy móc có thể đọc được chúng.



Chúng tôi đã cung cấp tên của DataFrame với tên cột cụ thể có các giá trị mà chúng tôi cần thay thế, đó là “staff [‘ Degree ’]”. Chúng tôi muốn các giá trị của cột “Bằng”, có các giá trị phân loại, được thay thế bằng các giá trị số nguyên. Sau đó, phương thức “.replace ()” được gọi. Chúng tôi đã chuyển nó thành hai bộ; đầu tiên chứa hai giá trị phân loại “[‘ BS ’,‘ MS ’]” mà chúng tôi đã trích xuất từ ​​cột “Bằng cấp”. Như bạn có thể thấy, cột 'Bằng cấp' sử dụng hai giá trị này nhiều lần. Nếu chúng ta có giá trị thứ ba, chúng ta cũng phải đề cập đến điều đó. Tập thứ hai có hai giá trị int “[0, 1]”, sẽ thay thế các giá trị của tập đầu tiên tương ứng. Tham số khác, “inplace”, được đặt là “True”, cho phép thay thế các giá trị. Nếu được đặt thành “Sai”, nó sẽ vô hiệu hóa việc thay thế. Cuối cùng, chúng tôi đã sử dụng phương thức “print ()” để hiển thị DataFrame “nhân viên” được cập nhật.


DataFrame kết quả có các giá trị nguyên trong cột 'Bằng'. Giá trị “BS” được thay thế bằng “0s” và “MS” được thay thế bằng “1s”.


Bạn thậm chí có thể xác minh kiểu dữ liệu cho từng cột bằng cách sử dụng thuộc tính “dataframe.dtype”. Điều này sẽ giúp chúng tôi có được các kiểu dữ liệu của tất cả các cột trong DataFrame được chỉ định.


Ở đây, chúng tôi có các kiểu dữ liệu DataFrame của chúng tôi. Chúng ta có thể thấy kiểu dữ liệu của cột “Degree” được thay đổi thành “int64”.

Ví dụ # 2: Sử dụng phương thức Pandas apply ()

Phương pháp khác mà pandas cung cấp cho chúng tôi là hàm “DataFrame.apply ()” để chuyển đổi các giá trị phân loại thành số nguyên. Trong ví dụ trước, chúng ta đã học cách chuyển một cột phân loại thành một số nguyên. Bây giờ chúng ta sẽ xem cách chuyển đổi tất cả các cột phân loại trong DataFrame thành một int.

Bắt đầu với việc triển khai thực tế, chúng ta phải nhập thư viện thiết yếu cho phương pháp này, đó là pandas. Chúng tôi đã sử dụng tập lệnh “nhập gấu trúc dưới dạng pd” để nhập gấu trúc vào tệp Python của chúng tôi trong công cụ “Spyder”, công cụ này sẽ cho phép chúng tôi truy cập các mô-đun gấu trúc bằng cách sử dụng “pd”. Chúng tôi đã sử dụng hàm “pd.DataFrame ()” để tạo một DataFrame.

DataFrame này có bốn cột “nhóm”, “vị trí”, “điểm số” và “hỗ trợ”. Mỗi cột lưu trữ 9 giá trị. Các giá trị cột “nhóm” là “X”, “X”, “Y”, “X”, “Y”, “Y”, “Y”, “X” và “Y”. Cột “vị trí” có 9 giá trị là “A”, “C”, “D”, “A”, “C”, “B”, “B”, “D” và “B”. Cột “điểm số” có các giá trị nguyên là “4”, “8”, “7”, “10”, “9”, “5”, “7”, “3” và “23”. Cột cuối cùng, “hỗ trợ”, có các giá trị “10”, “2”, “3”, “9”, “3”, “7”, “4”, “2” và “9”.

Chúng tôi đã tạo một đối tượng DataFrame “prog” và gán cho nó đầu ra của việc gọi phương thức “pd.DataFrame ()”. Vì vậy, khung DataFrame kết quả được tạo từ “pd.DataFrame ()” sẽ được lưu trữ trong “prog”. Bây giờ, chúng ta có thể truy cập DataFrame bằng cách sử dụng đối tượng này. Để xem DataFrame này, chúng tôi đã sử dụng phương thức “print ()” với đối tượng DataFrame “prog” làm tham số của nó.


Khi chương trình Python trước đó được thực thi, một DataFrame có bốn cột sẽ được hiển thị trên thiết bị đầu cuối.


Để chuyển đổi nhiều cột phân loại thành số nguyên, chúng tôi đã làm theo kỹ thuật này. Đầu tiên chúng ta phải chọn tất cả các cột có chứa kiểu dữ liệu đối tượng bằng cách sử dụng phương thức pandas “DataFrame.select_dtypes (). Cột”. Khi chúng tôi sử dụng nó trong tập lệnh của mình theo yêu cầu, nó sẽ là “prog.select_dtypes ([‘ object ’]). Cột”. Nó sẽ chọn tất cả các cột có kiểu dữ liệu “đối tượng” trong DataFrame “prog”. Chúng tôi đã tạo một biến “concate_col” để lưu trữ kết quả đầu ra của phương thức này. Bây giờ chúng ta có thể truy cập các cột kiểu dữ liệu “đối tượng” đơn giản bằng cách sử dụng biến “concat_col” này.

Bây giờ, để chuyển đổi các cột này thành số nguyên, chúng tôi đã sử dụng pandas “DataFrame.apply ()” với phương thức “pd.factorize ()”. Chúng tôi đã sử dụng biến “concat_col” với tên DataFrame, sau đó phương thức “.apply ()” được gọi. Giữa dấu ngoặc của phương thức “.apply”, chúng tôi đã gọi phương thức “pd.factorize ()” trong đó “x” có thể là bất kỳ giá trị nào từ DataFrame “prog” với kiểu dữ liệu “đối tượng”. Do đó, toàn bộ dòng mã này được viết là “prog ['concat_col'] = prog ['concat_col']. Apply (lambda x: pd.factorize (x) [0])”. Phương thức thừa số sẽ nhận giá trị bằng một kiểu dữ liệu 'đối tượng' và chuyển đổi nó thành 'int'. Kết quả cuối cùng có thể được hiển thị bằng cách gọi hàm “print ()” bằng cách chuyển biến “prog” làm tham số của nó.


Trong DataFrame được cập nhật, chúng ta có thể quan sát các giá trị của cột “nhóm” và cột “vị trí” ban đầu được phân loại, tức là đối tượng. Vẫn trong DataFrame đầu ra được cập nhật, cả hai cột đều có giá trị nguyên. Trong cột 'nhóm', 'X' được thay thế bằng '0' và 'Y' bằng '1'. Trong khi cột “vị trí” “A” được thay thế bằng “0”, “C” bằng “1”, “D” bằng “2” và “B” bằng “3”.


Bây giờ, hãy xác minh các kiểu dữ liệu được cập nhật.


Tất cả các cột sau có kiểu dữ liệu 'int64'.

Sự kết luận

Hướng dẫn của chúng tôi xoay quanh việc chuyển đổi các giá trị phân loại thành các giá trị số để máy có thể hiểu được chúng vì kiểu dữ liệu đối tượng không thể được chúng xử lý. Chúng tôi đã giới thiệu cho bạn hai phương pháp tiếp cận được đặc trưng bởi thư viện “pandas” để có được kiểu dữ liệu cần thiết. Ngoài ra, với việc triển khai thực tế các mã ví dụ chạy trên công cụ “Spyder”, chúng tôi đã chia sẻ kết quả của từng ví dụ. Cuối cùng, chúng tôi đã xây dựng chi tiết từng bước để đạt được kết quả mong muốn.