Mục tiêu công thức
Bạn đã bao giờ cố gắng thực hiện một phân tích các tính năng chéo cho rằng bạn cần tạo cơ sở crosstabs trên các tính năng khác nhau.
Vì vậy, đây là công thức trên chúng ta có thể tạo crosstabs từ một từ điển trong Python.
Làm chủ nghệ thuật làm sạch dữ liệu trong học máy
Mục lục
- Mục tiêu công thức
- Bước 1 - Nhập thư viện
- Bước 2 - Thiết lập dữ liệu
- Bước 3 - Làm bảng crosstab
Bước 1 - Nhập thư viện
import pandas as pd
Bước 2 - Thiết lập dữ liệu
Bước 2 - Thiết lập dữ liệu
Bước 3 - Làm bảng crosstab
Bước 3 - Làm bảng crosstab
Chúng tôi đã nhập khẩu gấu trúc cần thiết.
first_name last_name age Comedy_Score Rating_Score
0 Sheldon Copper 42 9 25
1 Raj Koothrappali 38 7 25
2 Leonard Hofstadter 36 8 49
3 Howard Wolowitz 41 8 62
4 Amy Fowler 35 5 70
age 35 36 38 41 42 All
first_name
Amy 1 0 0 0 0 1
Howard 0 0 0 1 0 1
Leonard 0 1 0 0 0 1
Raj 0 0 1 0 0 1
Sheldon 0 0 0 0 1 1
All 1 1 1 1 1 5
first_name Amy Howard Leonard Raj Sheldon All
age Comedy_Score
35 5 1 0 0 0 0 1
36 8 0 0 1 0 0 1
38 7 0 0 0 1 0 1
41 8 0 1 0 0 0 1
42 9 0 0 0 0 1 1
All 1 1 1 1 1 5
first_name Amy Howard Leonard Raj Sheldon All
age Comedy_Score Rating_Score
35 5 70 1 0 0 0 0 1
36 8 49 0 0 1 0 0 1
38 7 25 0 0 0 1 0 1
41 8 62 0 1 0 0 0 1
42 9 25 0 0 0 0 1 1
All 1 1 1 1 1 5
Tính toán một bảng chéo đơn giản của hai [hoặc nhiều] các yếu tố.
Theo mặc định, tính toán một bảng tần số của các yếu tố trừ khi một mảng các giá trị và hàm tổng hợp được truyền.
Tham số IndexArray-like, sê-ri hoặc danh sách các mảng/sê-riindexarray-like, Series, or list of arrays/SeriesGiá trị để nhóm theo các hàng.
cột, giống như sê-ri hoặc danh sách các mảngarray-like, Series, or list of arrays/SeriesGiá trị để nhóm theo các cột.
giá trị giống như, tùy chọnarray-like, optionalMảng các giá trị để tổng hợp theo các yếu tố. Yêu cầu AGGFUNC được chỉ định.
Rownamessequence, mặc định không cósequence, default NoneNếu được thông qua, phải khớp với số lượng mảng hàng được truyền.
colnamessequence, mặc định không cósequence, default NoneNếu được thông qua, phải khớp với số mảng cột được truyền.
Aggfuncfunction, tùy chọnfunction, optionalNếu được chỉ định, cũng yêu cầu các giá trị được chỉ định.
marginsbool, mặc định saibool, default FalseThêm lề hàng/cột [phụ].
Tên của hàng/cột sẽ chứa tổng số khi lề là đúng.
dropnabool, mặc định đúngbool, default TrueKhông bao gồm các cột có các mục nhập đều là NAN.
NormalizeBool, {‘Allbool, {‘all’, ‘index’, ‘columns’}, or {0,1}, default FalseBình thường hóa bằng cách chia tất cả các giá trị cho tổng các giá trị.
Nếu được thông qua ‘tất cả các thành viên hoặc đúng, sẽ bình thường hóa trên tất cả các giá trị.
Nếu được thông qua ‘Index, sẽ bình thường hóa trên mỗi hàng.
Nếu được truyền ‘cột, sẽ bình thường hóa trên mỗi cột.
Nếu lề là đúng, cũng sẽ bình thường hóa các giá trị ký quỹ.
Tab cross của dữ liệu.
Ghi chú
Bất kỳ loạt nào được thông qua sẽ có các thuộc tính tên của chúng được sử dụng trừ khi tên hàng hoặc cột cho bảng xếp hạng chéo được chỉ định.
Bất kỳ đầu vào nào được truyền có chứa dữ liệu phân loại sẽ có tất cả các danh mục của nó được bao gồm trong phân loại chéo, ngay cả khi dữ liệu thực tế không chứa bất kỳ trường hợp nào của một danh mục cụ thể.all of its categories included in the cross-tabulation, even if the actual data does not contain any instances of a particular category.
Trong trường hợp có các chỉ mục chồng chéo, một khung dữ liệu trống sẽ được trả về.
Tham khảo Hướng dẫn sử dụng để biết thêm ví dụ.the user guide for more examples.
Ví dụ
>>> a = np.array[["foo", "foo", "foo", "foo", "bar", "bar", ... "bar", "bar", "foo", "foo", "foo"], dtype=object] >>> b = np.array[["one", "one", "one", "two", "one", "one", ... "one", "two", "two", "two", "one"], dtype=object] >>> c = np.array[["dull", "dull", "shiny", "dull", "dull", "shiny", ... "shiny", "dull", "shiny", "shiny", "shiny"], ... dtype=object] >>> pd.crosstab[a, [b, c], rownames=['a'], colnames=['b', 'c']] b one two c dull shiny dull shiny a bar 1 2 1 0 foo 2 2 1 2
Ở đây, C, và F, không được trình bày trong dữ liệu và sẽ không được hiển thị trong đầu ra vì Dropna là đúng theo mặc định. Đặt dropna = false để bảo tồn các danh mục không có dữ liệu.
>>> foo = pd.Categorical[['a', 'b'], categories=['a', 'b', 'c']] >>> bar = pd.Categorical[['d', 'e'], categories=['d', 'e', 'f']] >>> pd.crosstab[foo, bar] col_0 d e row_0 a 1 0 b 0 1 >>> pd.crosstab[foo, bar, dropna=False] col_0 d e f row_0 a 1 0 0 b 0 1 0 c 0 0 0