DataFrame có thể được so sánh với tập dữ liệu được giữ trong bảng tính hoặc cơ sở dữ liệu với các hàng và cột. DataFrame là một Đối tượng 2D.
Ok, bạn nhầm lẫn với thuật ngữ 1D và 2D?
Sự khác biệt chính giữa 1D (Series) và 2D (DataFrame) là số lượng điểm thông tin bạn cần để inorer đến bất kỳ điểm dữ liệu đơn lẻ nào. Nếu bạn lấy một ví dụ về Chuỗi và muốn trích xuất một giá trị, bạn chỉ cần một điểm tham chiếu, tức là chỉ mục hàng.
So sánh với một bảng (DataFrame), một điểm tham chiếu là không đủ để đến một điểm dữ liệu, bạn cần một giao điểm của giá trị hàng và giá trị cột.
Đoạn mã dưới đây cho biết cách tạo Pandas DataFrame từ tệp csv.
Phương thức .read_csv () theo mặc định tạo một DataFrame. Bạn có thể tải xuống bộ dữ liệu phim từ kaggle.com bằng cách tìm kiếm phim.
"" "Tập lệnh:Tạo Pandas DataFrame từ tệp csv." "" nhập gấu trúc dưới dạng pdmovies_dataset pd read_csv "https://raw.githubusercontent.com/sasankac/TestDataSet/master/movies_data.csv")# 1 in loại objecttype (phim_dataset) # 2 in 5 bản ghi hàng đầu ở định dạng bảng
| ngân sách | id | original_language | original_title | phổ biến | release_date | doanh thu | thời gian chạy | trạng thái | tiêu đề | vote_average | vote_count |
---|---|---|---|---|---|---|---|---|---|---|---|---|
0 | 237000000 | 19995 | vi | Hình đại diện | 150.437577 | 10/12/2009 | 2787965087 | 162.0 | Đã phát hành | Hình đại diện | 7.2 | 11800 |
1 | 300000000 | 285 | vi | Cướp biển vùng Caribe:Ngày tận thế | 139.082615 | 19/05/2007 | 961000000 | 169.0 | Đã phát hành | Cướp biển vùng Caribe:Ngày tận thế | 6.9 | 4500 |
2 | 245000000 | 206647 | vi | Bóng ma | 107.376788 | 26/10/2015 | 880674609 | 148.0 | Đã phát hành | Bóng ma | 6.3 | 4466 |
3 | 250000000 | 49026 | vi | Hiệp sĩ bóng đêm trỗi dậy | 112.312950 | 16/07/2012 | 1084939099 | 165.0 | Đã phát hành | Hiệp sĩ bóng đêm trỗi dậy | 7.6 | 9106 |
4 | 260000000 | 49529 | vi | John Carter | 43,926995 | 7/03/2012 | 284139100 | 132.0 | Đã phát hành | John Carter | 6.1 | 2124 |
2.Chọn một cột DataFrame đơn. Chèn tên cột dưới dạng chuỗi hoặc danh sách cho toán tử chỉ mục sẽ trả về giá trị cột dưới dạng Chuỗi hoặc Dữ liệu.
Nếu chúng ta truyền vào một chuỗi có tên cột, bạn sẽ nhận được một Chuỗi làm đầu ra, tuy nhiên, việc chuyển danh sách chỉ với một tên cột sẽ trả về DataFrame. Chúng ta sẽ thấy điều này với các ví dụ.
# select data as series movies_dataset ["title"]
0 Avatar1 Pirates of the Caribbean:At World's End2 Spectre3 The Dark Knight trỗi dậy4 John Carter ... 4798 El Mariachi4799 Cặp vợ chồng mới cưới4800 Đã ký, Kín, Đã giao trước>
# select data as DataFrame movies_dataset [["title"]]
| tiêu đề |
---|---|
0 | Hình đại diện |
1 | Cướp biển vùng Caribe:Ngày tận thế |
2 | Bóng ma |
3 | Hiệp sĩ bóng đêm trỗi dậy |
4 | John Carter |
... | ... |
4798 | El Mariachi |
4799 | Cặp đôi mới cưới |
4800 | Đã ký, đóng dấu, đã giao |
4801 | Gọi điện tại Thượng Hải |
4802 | Ngày của tôi với Drew |
3.Chọn nhiều cột DataFrame.
# Nhiều cột DataFrame movies_dataset [["title" "thời gian chạy", "vote_average", "vote_count"]]
| tiêu đề | thời gian chạy | vote_average | vote_count |
---|---|---|---|---|
0 | Hình đại diện | 162.0 | 7.2 | 11800 |
1 | Cướp biển vùng Caribe:Ngày tận thế | 169.0 | 6.9 | 4500 |
2 | Bóng ma | 148.0 | 6.3 | 4466 |
3 | Hiệp sĩ bóng đêm trỗi dậy | 165.0 | 7.6 | 9106 |
4 | John Carter | 132.0 | 6.1 | 2124 |
... | ... | ... | ... | ... |
4798 | El Mariachi | 81.0 | 6.6 | 238 |
4799 | Cặp đôi mới cưới | 85.0 | 5.9 | 5 |
4800 | Đã ký, đóng dấu, đã giao | 120.0 | 7.0 | 6 |
4801 | Gọi điện tại Thượng Hải | 98.0 | 5,7 | 7 |
4802 | Ngày của tôi với Drew | 90.0 | 6.3 | 16 |
Để tránh các vấn đề về khả năng đọc mã, tôi luôn khuyên bạn nên xác định một biến để giữ tên của các cột dưới dạng danh sách và sử dụng tên cột thay vì chỉ định nhiều tên cột trong mã.
column =["title", "runtime", "vote_average", "vote_count"] phim_dataset [cột]
| tiêu đề | thời gian chạy | vote_average | vote_count |
---|---|---|---|---|
0 | Hình đại diện | 162.0 | 7.2 | 11800 |
1 | Cướp biển vùng Caribe:Ngày tận thế | 169.0 | 6.9 | 4500 |
2 | Bóng ma | 148.0 | 6.3 | 4466 |
3 | Hiệp sĩ bóng đêm trỗi dậy | 165.0 | 7.6 | 9106 |
4 | John Carter | 132.0 | 6.1 | 2124 |
... | ... | ... | ... | ... |
4798 | El Mariachi | 81.0 | 6.6 | 238 |
4799 | Cặp đôi mới cưới | 85.0 | 5.9 | 5 |
4800 | Đã ký, đóng dấu, đã giao | 120.0 | 7.0 | 6 |
4801 | Gọi điện tại Thượng Hải | 98.0 | 5,7 | 7 |
4802 | Ngày của tôi với Drew | 90.0 | 6.3 | 16 |
4.DataFrame cột theo tên cột.
.filter () phương thức
Phương pháp này khá tiện dụng để tìm kiếm và chọn các cột bằng cách sử dụng một chuỗi. Điều này hoạt động khá giống với tham số %% trong SQL. Hãy nhớ rằng, phương thức .filter () chọn cột bằng cách chỉ kiểm tra tên cột chứ không phải giá trị dữ liệu thực tế.
Phương thức .filter () hỗ trợ ba tham số có thể được sử dụng cho hoạt động lựa chọn.
.như
.regex
.items
like nhận một chuỗi và cố gắng tìm các tên cột chứa chuỗi này ở đâu đó trong tên cột.
# Chọn cột có tên cột như "title" movies_dataset.filter (like ="title"). head (5)
| original_title | tiêu đề |
---|---|---|
0 | Hình đại diện | Hình đại diện |
1 | Cướp biển vùng Caribe:Ngày tận thế | Cướp biển vùng Caribe:Ngày tận thế |
2 | Bóng ma | Bóng ma |
3 | Hiệp sĩ bóng đêm trỗi dậy | Hiệp sĩ bóng đêm trỗi dậy |
4 | John Carter | John Carter |
.regex - Cách linh hoạt hơn để chọn tên cột bằng cách sử dụng biểu thức regualr
# Chọn các cột kết thúc bằng "t" movies_dataset.filter (regex =t) .head ()
| ngân sách | vote_count |
---|---|---|
0 | 237000000 | 11800 |
1 | 300000000 | 4500 |
2 | 245000000 | 4466 |
3 | 250000000 | 9106 |
4 | 260000000 | 2124 |
.items - Bản sao của việc chuyển tên cột dưới dạng chuỗi hoặc danh sách sang toán tử chỉ mục, ngoại trừ KeyError sẽ không được đưa ra
DataFrame cột theo kiểu dữ liệu.
Phương thức .select_dtypes hoạt động trên các kiểu dữ liệu cột nếu bạn muốn lọc và chỉ sử dụng một số kiểu dữ liệu nhất định.
Một lần nữa, phương thức .select_dtypes chấp nhận nhiều kiểu dữ liệu (theo danh sách) hoặc kiểu dữ liệu đơn lẻ (dưới dạng Chuỗi) trong các tham số bao gồm hoặc loại trừ của nó và trả về DataFrame với các cột chỉ của các kiểu dữ liệu đã cho đó.
Tham số .include bao gồm các cột có / s kiểu dữ liệu được chỉ định và .exclude sẽ bỏ qua các cột có kiểu dữ liệu được chỉ định.
Trước tiên, chúng ta hãy xem xét các loại dữ liệu và số lượng cột có các loại dữ liệu đó
movies_dataset =pd.read_csv ("https://raw.githubusercontent.com/sasankac/TestDataSet/master/movies_data.csv" movies_dataset.dtypes.value_counts ()
đối tượng 5int64 4float64 3dtype:int64
a) Lọc kiểu dữ liệu số nguyên từ DataFrames của gấu trúc.
movies_dataset select_dtypes (include ="int") head (3)
2 |
---|
1 |
0 |
|
b). Chọn kiểu dữ liệu số nguyên và số thực từ DataFrames gấu trúc.
Bạn có thể chỉ định nhiều kiểu dữ liệu như một danh sách hiển thị bên dưới.
movies_dataset select_dtypes (include =["int64", "float"]). head (3)
| ngân sách | id | phổ biến | doanh thu | thời gian chạy | vote_average | vote_count |
---|---|---|---|---|---|---|---|
0 | 237000000 | 19995 | 150.437577 | 2787965087 | 162.0 | 7.2 | 11800 |
1 | 300000000 | 285 | 139.082615 | 961000000 | 169.0 | 6.9 | 4500 |
2 | 245000000 | 206647 | 107.376788 | 880674609 | 148.0 | 6.3 | 4466 |
c) Vâng, nếu bạn chỉ muốn tất cả các kiểu dữ liệu số, chỉ cần chỉ định số
movies_dataset select_dtypes (include =["number"]). head (3)
| ngân sách | id | phổ biến | doanh thu | thời gian chạy | vote_average | vote_count |
---|---|---|---|---|---|---|---|
0 | 237000000 | 19995 | 150.437577 | 2787965087 | 162.0 | 7.2 | 11800 |
1 | 300000000 | 285 | 139.082615 | 961000000 | 169.0 | 6.9 | 4500 |
2 | 245000000 | 206647 | 107.376788 | 880674609 | 148.0 | 6.3 | 4466 |
d). Loại trừ một số loại dữ liệu nhất định khỏi DataFrames của gấu trúc.
movies_dataset select_dtypes (lude =["object"]). head (3)
| ngân sách | id | phổ biến | doanh thu | thời gian chạy | vote_average | vote_count |
---|---|---|---|---|---|---|---|
0 | 237000000 | 19995 | 150.437577 | 2787965087 | 162.0 | 7.2 | 11800 |
1 | 300000000 | 285 | 139.082615 | 961000000 | 169.0 | 6.9 | 4500 |
2 | 245000000 | 206647 | 107.376788 | 880674609 | 148.0 | 6.3 | 4466 |
LƯU Ý :- Không có kiểu dữ liệu chuỗi để xử lý, gấu trúc chuyển đổi chúng thành Đối tượng, vì vậy nếu bạn gặp phải ngoại lệ “TypeError:kiểu dữ liệu“ chuỗi ”không hiểu”, hãy thay thế chuỗi bằng Đối tượng.