Khi cố gắng tìm hiểu một DataFrame lớn trong Pandas, bạn có thể cần phải đặt nó theo cột và hàng. Trong hướng dẫn này, chúng tôi sẽ chỉ ra các trường hợp sử dụng phổ biến nhất của phân vùng cột DataFrame của bạn.
Chúng tôi sẽ bắt đầu bằng cách thiết lập DataFrame mẫu của chúng tôi, chúng tôi sẽ thực hiện bằng cách chạy mã Python sau trong môi trường yêu thích của chúng tôi (để đơn giản, tôi sử dụng Anaconda và Jupyter Lab).
import pandas as pd # import the pandas library
languages = ({"language": [ "Python", "C-Sharp", "Javascript","PHP"] ,
"avg_difficulty_level": [3, 2, 2, 1],
"avg_salary": [120, 100, 120, 80],
"applications": [10,15,14,20]})
# Now let's convert our dict to a DataFrame
languages = pd.DataFrame.from_dict(languages)
Bây giờ, chúng ta hãy xem xét các hàng đầu tiên của Dataframe bằng cách sử dụng phương thức head ().
languages.head()
Như bạn có thể thấy, đây là một DataFrame khá đơn giản mà chúng tôi sẽ sử dụng làm ví dụ trong bài đăng này:
| |
ngôn ngữ |
avg_difficulty_level |
avg_salary |
các ứng dụng |
| 0 |
Python |
3 |
120 |
10 |
| 1 |
C-Sharp |
2 |
100 |
15 |
| 2 |
Javascript |
2 |
120 |
14 |
| 3 |
PHP |
1 |
80 |
20 |
Lọc một cột
Chúng tôi sẽ bắt đầu với trường hợp đơn giản nhất, đó là tập hợp con một cột trong tập dữ liệu của chúng tôi. Chạy lệnh sau sẽ tạo một đối tượng Series:
Theo tên / nhãn
languages["language"]
Đầu ra là một Series:
0 Python
1 C-Sharp
2 Javascript
3 PHP
Tên: ngôn ngữ, loại: đối tượng
type(languages["language"])
pandas.core.series.Series
Theo chỉ mục
Lệnh sau cũng sẽ trả về một Chuỗi chứa cột đầu tiên
languages.iloc[:,0]
Chọn nhiều cột
Bằng tên
Khi truyền một danh sách các cột, Pandas sẽ trả về một DataFrame chứa một phần dữ liệu.
languages[["language", "applications"]]
| |
ngôn ngữ |
các ứng dụng |
| 0 |
Python |
10 |
| 1 |
C-Sharp |
15 |
| 2 |
Javascript |
14 |
| 3 |
PHP |
20 |
Theo nhãn (có loc)
df.loc[:,["language","applications"]]
Kết quả sẽ tương tự.
Theo chỉ mục
Bây giờ, hãy truy xuất nhiều cột bằng cách sử dụng chỉ mục:
languages.iloc[: ,[0,3]]
| |
ngôn ngữ |
các ứng dụng |
| 0 |
Python |
10 |
| 1 |
C-Sharp |
15 |
| 2 |
Javascript |
14 |
| 3 |
PHP |
20 |
Theo điều kiện
Trong trường hợp này, chúng tôi sẽ chỉ hiển thị các cột mà tên phù hợp với một biểu thức cụ thể. Chúng tôi sẽ sử dụng phương pháp lọc khá tiện dụng :
languages.filter(axis = 1, like="avg")
Ghi chú:
- chúng tôi cũng có thể lọc theo một biểu thức chính quy cụ thể (regex).
- Chúng ta có thể áp dụng trục tham số = 0 để lọc theo giá trị hàng cụ thể.
Lọc các hàng cụ thể theo điều kiện
Đây là một cách khá đơn giản để đặt con DataFrame theo một giá trị hàng:
languages[(languages["applications"] > 15)]
Chúng tôi chỉ có một kết quả:
languages[(languages["applications"] > 15)]
| |
ngôn ngữ |
avg_difficulty_level |
avg_salary |
các ứng dụng |
| 3 |
PHP |
1 |
80 |
20 |