Ví dụ truy vấn khung dữ liệu Python

Hướng dẫn sẽ giải thích cú pháp và cũng chỉ cho bạn các ví dụ từng bước về cách sử dụng phương pháp truy vấn Pandas

Nếu bạn cần một cái gì đó cụ thể [như trợ giúp về cú pháp, ví dụ, v.v.], bạn có thể nhấp vào một trong các liên kết sau và nó sẽ đưa bạn đến phần thích hợp

nội dung

Nhưng nếu bạn chưa quen với Pandas hoặc chưa quen với thao tác dữ liệu trong Python, tôi khuyên bạn nên đọc toàn bộ hướng dẫn. Mọi thứ sẽ có ý nghĩa hơn theo cách đó

Vâng …. Chúng ta hãy đi đến đó

Đánh giá nhanh về Pandas

Rất nhanh, hãy xem lại Pandas là gì

Pandas là một gói cho ngôn ngữ lập trình Python

Cụ thể, Pandas là bộ công cụ để thực hiện thao tác dữ liệu trong Python. Nó là một bộ công cụ quan trọng để thực hiện khoa học dữ liệu trong Python

Pandas hoạt động với DataFrames

Để cụ thể hơn một chút, Pandas là bộ công cụ để tạo và làm việc với cấu trúc dữ liệu được gọi là DataFrame

DataFrame là một cấu trúc mà chúng tôi sử dụng để lưu trữ dữ liệu

DataFrames có cấu trúc hàng và cột, như thế này

Nếu bạn đã làm việc với Microsoft Excel, bạn sẽ quen thuộc với cấu trúc này. Khung dữ liệu Pandas rất giống với bảng tính Excel, trong đó Khung dữ liệu có hàng, cột và ô

Có một số cách để tạo DataFrame, bao gồm nhập dữ liệu từ tệp bên ngoài [chẳng hạn như tệp CSV]; . Hàm DataFrame[]

Để biết thêm thông tin về DataFrames, hãy xem hướng dẫn của chúng tôi về Pandas DataFrames

Các phương thức Pandas thực hiện các thao tác trên DataFrames

Khi bạn có dữ liệu của mình bên trong khung dữ liệu, thông thường bạn sẽ cần thực hiện thao tác dữ liệu

Nếu dữ liệu của bạn hơi “bẩn”, bạn có thể cần sử dụng một số công cụ để dọn dẹp dữ liệu. sửa đổi các giá trị bị thiếu, thay đổi tên chuỗi, đổi tên biến, thêm biến, v.v.

Ngoài ra, khi dữ liệu của bạn ở trong cấu trúc DataFrame và dữ liệu “sạch”, bạn vẫn cần sử dụng một số kỹ thuật “thao tác dữ liệu” để phân tích dữ liệu của mình. Ở đây, tôi đang nói về những thứ như tập hợp con, nhóm và tổng hợp

Pandas có các công cụ để thực hiện tất cả các tác vụ này. Nó là một bộ công cụ toàn diện để làm việc với dữ liệu và thực hiện thao tác dữ liệu trên DataFrames

Giới thiệu nhanh về truy vấn Pandas

Trong số nhiều công cụ để thực hiện thao tác dữ liệu trên DataFrames là phương thức truy vấn Pandas

       name region  sales  expenses
0   William   East  50000     42000
1      Emma  North  52000     43000
2     Sofia   East  90000     50000
3    Markus  South  34000     44000
4    Edward   West  42000     38000
5    Thomas   West  72000     39000
6     Ethan  South  49000     42000
7    Olivia   West  55000     60000
8      Arun   West  67000     39000
9     Anika   East  65000     44000
10    Paulo  South  67000     45000
8 là gì và nó làm gì?

Truy vấn là một công cụ để truy vấn các khung dữ liệu và truy xuất các tập hợp con

Ở cấp độ rất cao, phương thức truy vấn Pandas là một công cụ để tạo các tập hợp con từ Khung dữ liệu Pandas

Dù tốt hay xấu, thực tế có một số cách để tạo tập hợp con với Pandas

Các phương thức loc và iloc cho phép bạn truy xuất các tập hợp con dựa trên nhãn hàng và cột hoặc theo chỉ số nguyên của hàng và cột

Và Pandas có ký hiệu ngoặc cho phép bạn sử dụng các điều kiện logic để truy xuất các hàng dữ liệu cụ thể

Nhưng cả hai công cụ đó có thể hơi rườm rà về mặt cú pháp. Hơn nữa, chúng khó sử dụng cùng với các phương pháp thao tác dữ liệu khác một cách trơn tru, hữu cơ

Theo nhiều cách, phương pháp Pandas

       name region  sales  expenses
0   William   East  50000     42000
1      Emma  North  52000     43000
2     Sofia   East  90000     50000
3    Markus  South  34000     44000
4    Edward   West  42000     38000
5    Thomas   West  72000     39000
6     Ethan  South  49000     42000
7    Olivia   West  55000     60000
8      Arun   West  67000     39000
9     Anika   East  65000     44000
10    Paulo  South  67000     45000
9 giải quyết những vấn đề đó

Truy vấn cho phép bạn "truy vấn" một DataFrame và truy xuất các tập hợp con dựa trên các điều kiện logic

Hơn nữa, cú pháp được sắp xếp hợp lý hơn một chút so với ký hiệu dấu ngoặc Pandas

Ngoài ra, phương thức truy vấn Pandas có thể được sử dụng với các phương thức Pandas khác theo cách hợp lý giúp thao tác dữ liệu trơn tru và đơn giản. Tôi sẽ chỉ cho bạn một ví dụ nhỏ về điều đó sau trong phần hướng dẫn

Nhưng trước khi đến đó, trước tiên chúng ta hãy xem cú pháp của truy vấn Pandas

Cú pháp của phương thức truy vấn Pandas

Cú pháp của truy vấn Pandas chủ yếu là đơn giản

Tuy nhiên, để sử dụng phương pháp này, bạn sẽ cần phải có Pandas DataFrame

Điều đó có nghĩa là bạn sẽ cần nhập Pandas và sử dụng Pandas để tạo DataFrame

Để biết thêm thông tin về cách tạo DataFrames, bạn có thể đọc hướng dẫn giới thiệu của chúng tôi về Pandas DataFrames

Cú pháp truy vấn gấu trúc

Vâng

Giả sử bạn có một DataFrame, bạn cần gọi

       name region  sales  expenses
0   William   East  50000     42000
1      Emma  North  52000     43000
2     Sofia   East  90000     50000
3    Markus  South  34000     44000
4    Edward   West  42000     38000
5    Thomas   West  72000     39000
6     Ethan  South  49000     42000
7    Olivia   West  55000     60000
8      Arun   West  67000     39000
9     Anika   East  65000     44000
10    Paulo  South  67000     45000
8 bằng “cú pháp dấu chấm”

Về cơ bản, hãy nhập tên của DataFrame mà bạn muốn tập hợp con, sau đó nhập “dấu chấm”, sau đó nhập tên của phương thức….

sales_data.query['sales > 60000']
1

Như thế này

Trong phần giải thích cú pháp ở trên, tôi giả sử rằng bạn có một DataFrame tên là

sales_data.query['sales > 60000']
2

Sau đó, bên trong phương thức truy vấn, có một vài tham số và đối số cho hàm

Hãy đi qua những

Các tham số của truy vấn pandas

Bên trong hàm, thực sự chỉ có hai đối số hoặc tham số mà bạn cần biết về

  • sales_data.query['sales > 60000']
    
    3
  • sales_data.query['sales > 60000']
    
    4

Hãy nói về từng người trong số họ

sales_data.query['sales > 60000']
3 [bắt buộc]

Ở đây,

sales_data.query['sales > 60000']
3 là một số loại biểu thức logic mô tả những hàng nào sẽ trả về trong kết quả đầu ra

Nếu biểu thức đúng với một hàng cụ thể, hàng đó sẽ được đưa vào đầu ra. Nếu biểu thức sai đối với một hàng cụ thể, hàng đó sẽ bị loại khỏi đầu ra. Tôi sẽ chỉ cho bạn một số ví dụ về các biểu thức này

Một lưu ý. bản thân biểu thức phải được trình bày dưới dạng chuỗi Python. Điều đó có nghĩa là biểu thức phải được đặt bên trong dấu ngoặc kép … hoặc trích dẫn kép hoặc trích dẫn đơn

Hãy nhớ rằng bạn cũng có thể cần sử dụng các chuỗi bên trong chính biểu thức đó. Ví dụ: nếu bạn cần tham chiếu một danh mục có tên là “Chó” bên trong biểu thức logic của mình và bạn đặt danh mục đó bên trong dấu ngoặc kép, thì bạn sẽ cần đặt biểu thức tổng thể bên trong dấu ngoặc đơn. Nếu bạn chưa quen với điều này, vui lòng xem lại cách chuỗi hoạt động trong Python và xem lại cách tham chiếu chuỗi trong chuỗi

sales_data.query['sales > 60000']
4

Tham số

sales_data.query['sales > 60000']
4 cho phép bạn chỉ định xem bạn có muốn sửa đổi trực tiếp DataFrame mà bạn đang làm việc hay không

Hãy nhớ từ phần cú pháp, khi chúng ta sử dụng phương thức

       name region  sales  expenses
0   William   East  50000     42000
1      Emma  North  52000     43000
2     Sofia   East  90000     50000
3    Markus  South  34000     44000
4    Edward   West  42000     38000
5    Thomas   West  72000     39000
6     Ethan  South  49000     42000
7    Olivia   West  55000     60000
8      Arun   West  67000     39000
9     Anika   East  65000     44000
10    Paulo  South  67000     45000
8, chúng ta cần nhập tên của DataFrame mà chúng ta muốn đặt con. DataFrame đó sẽ đóng vai trò là đầu vào của phương thức truy vấn

Tuy nhiên, theo mặc định, phương thức truy vấn sẽ tạo ra một DataFrame mới làm đầu ra và sẽ giữ nguyên DataFrame ban đầu

Đó là bởi vì theo mặc định, tham số

sales_data.query['sales > 60000']
4 được đặt thành
       name region  sales  expenses
0   William   East  50000     42000
1      Emma  North  52000     43000
2     Sofia   East  90000     50000
3    Markus  South  34000     44000
4    Edward   West  42000     38000
5    Thomas   West  72000     39000
6     Ethan  South  49000     42000
7    Olivia   West  55000     60000
8      Arun   West  67000     39000
9     Anika   East  65000     44000
10    Paulo  South  67000     45000
31. Điều đó có nghĩa là truy vấn đó sẽ không sửa đổi DataFrame gốc “tại chỗ”. Thay vào đó, nó tạo ra một DataFrame mới. Đó thực sự là ý nghĩa của tham số
sales_data.query['sales > 60000']
4

Nhưng chúng ta có thể thay đổi hành vi đó bằng cách đặt

       name region  sales  expenses
0   William   East  50000     42000
1      Emma  North  52000     43000
2     Sofia   East  90000     50000
3    Markus  South  34000     44000
4    Edward   West  42000     38000
5    Thomas   West  72000     39000
6     Ethan  South  49000     42000
7    Olivia   West  55000     60000
8      Arun   West  67000     39000
9     Anika   East  65000     44000
10    Paulo  South  67000     45000
33

Nếu chúng tôi ghi đè mặc định và đặt

       name region  sales  expenses
0   William   East  50000     42000
1      Emma  North  52000     43000
2     Sofia   East  90000     50000
3    Markus  South  34000     44000
4    Edward   West  42000     38000
5    Thomas   West  72000     39000
6     Ethan  South  49000     42000
7    Olivia   West  55000     60000
8      Arun   West  67000     39000
9     Anika   East  65000     44000
10    Paulo  South  67000     45000
33, truy vấn sẽ sửa đổi DataFrame ban đầu “tại chỗ”

Nhưng hãy cẩn thận… nếu bạn làm điều này, bạn sẽ ghi đè lên Khung dữ liệu ban đầu của mình. Đảm bảo rằng mã của bạn đang hoạt động theo cách bạn muốn

ví dụ. cách sử dụng. query[] để tập hợp con một khung dữ liệu Pandas

Ok, bây giờ bạn đã học cách hoạt động của cú pháp, hãy xem một số ví dụ

ví dụ

Chạy mã này trước

Trước khi chúng tôi thực sự làm việc với các ví dụ, chúng tôi cần chạy một số mã sơ bộ

Chúng tôi sẽ nhập Pandas và tạo một khung dữ liệu

nhập gấu trúc

Đầu tiên, hãy nhập Pandas

Điều này khá đơn giản, nhưng nếu bạn là người mới bắt đầu, bạn có thể không quen với nó

Để gọi bất kỳ chức năng nào từ Pandas [hoặc bất kỳ gói nào khác], trước tiên chúng ta cần nhập gói. Chúng tôi nhập một gói có câu lệnh

       name region  sales  expenses
0   William   East  50000     42000
1      Emma  North  52000     43000
2     Sofia   East  90000     50000
3    Markus  South  34000     44000
4    Edward   West  42000     38000
5    Thomas   West  72000     39000
6     Ethan  South  49000     42000
7    Olivia   West  55000     60000
8      Arun   West  67000     39000
9     Anika   East  65000     44000
10    Paulo  South  67000     45000
35

Hơn nữa, chúng ta có thể nhập một gói có tên gốc [i. e. ,

       name region  sales  expenses
0   William   East  50000     42000
1      Emma  North  52000     43000
2     Sofia   East  90000     50000
3    Markus  South  34000     44000
4    Edward   West  42000     38000
5    Thomas   West  72000     39000
6     Ethan  South  49000     42000
7    Olivia   West  55000     60000
8      Arun   West  67000     39000
9     Anika   East  65000     44000
10    Paulo  South  67000     45000
36]. Nhưng chúng tôi cũng có tùy chọn nhập gói có “biệt hiệu. ” Đó là một cách làm rất phổ biến, và đó là những gì chúng ta sẽ làm ở đây

Chúng tôi sẽ nhập Pandas với biệt danh "

       name region  sales  expenses
0   William   East  50000     42000
1      Emma  North  52000     43000
2     Sofia   East  90000     50000
3    Markus  South  34000     44000
4    Edward   West  42000     38000
5    Thomas   West  72000     39000
6     Ethan  South  49000     42000
7    Olivia   West  55000     60000
8      Arun   West  67000     39000
9     Anika   East  65000     44000
10    Paulo  South  67000     45000
37"

       name region  sales  expenses
0   William   East  50000     42000
1      Emma  North  52000     43000
2     Sofia   East  90000     50000
3    Markus  South  34000     44000
4    Edward   West  42000     38000
5    Thomas   West  72000     39000
6     Ethan  South  49000     42000
7    Olivia   West  55000     60000
8      Arun   West  67000     39000
9     Anika   East  65000     44000
10    Paulo  South  67000     45000
0Tạo khung dữ liệu

Chúng tôi cũng cần một khung dữ liệu để làm việc với

Ở đây, chúng tôi sẽ sử dụng cách tạo DataFrame với một số dữ liệu bán hàng giả

Để làm điều này, chúng tôi chỉ sử dụng pd. Chức năng DataFrame từ Pandas

       name region  sales  expenses
0   William   East  50000     42000
1      Emma  North  52000     43000
2     Sofia   East  90000     50000
3    Markus  South  34000     44000
4    Edward   West  42000     38000
5    Thomas   West  72000     39000
6     Ethan  South  49000     42000
7    Olivia   West  55000     60000
8      Arun   West  67000     39000
9     Anika   East  65000     44000
10    Paulo  South  67000     45000
1

Và nếu chúng ta in nó ra, chúng ta có thể thấy tập dữ liệu

       name region  sales  expenses
0   William   East  50000     42000
1      Emma  North  52000     43000
2     Sofia   East  90000     50000
3    Markus  South  34000     44000
4    Edward   West  42000     38000
5    Thomas   West  72000     39000
6     Ethan  South  49000     42000
7    Olivia   West  55000     60000
8      Arun   West  67000     39000
9     Anika   East  65000     44000
10    Paulo  South  67000     45000

Lưu ý rằng DataFrame có bốn biến.

       name region  sales  expenses
0   William   East  50000     42000
1      Emma  North  52000     43000
2     Sofia   East  90000     50000
3    Markus  South  34000     44000
4    Edward   West  42000     38000
5    Thomas   West  72000     39000
6     Ethan  South  49000     42000
7    Olivia   West  55000     60000
8      Arun   West  67000     39000
9     Anika   East  65000     44000
10    Paulo  South  67000     45000
38,
       name region  sales  expenses
0   William   East  50000     42000
1      Emma  North  52000     43000
2     Sofia   East  90000     50000
3    Markus  South  34000     44000
4    Edward   West  42000     38000
5    Thomas   West  72000     39000
6     Ethan  South  49000     42000
7    Olivia   West  55000     60000
8      Arun   West  67000     39000
9     Anika   East  65000     44000
10    Paulo  South  67000     45000
39,
       name region  sales  expenses
0   William   East  50000     42000
1      Emma  North  52000     43000
2     Sofia   East  90000     50000
3    Markus  South  34000     44000
4    Edward   West  42000     38000
5    Thomas   West  72000     39000
6     Ethan  South  49000     42000
7    Olivia   West  55000     60000
8      Arun   West  67000     39000
9     Anika   East  65000     44000
10    Paulo  South  67000     45000
50 và
       name region  sales  expenses
0   William   East  50000     42000
1      Emma  North  52000     43000
2     Sofia   East  90000     50000
3    Markus  South  34000     44000
4    Edward   West  42000     38000
5    Thomas   West  72000     39000
6     Ethan  South  49000     42000
7    Olivia   West  55000     60000
8      Arun   West  67000     39000
9     Anika   East  65000     44000
10    Paulo  South  67000     45000
51

Chúng tôi sẽ sử dụng các biến này [và chỉ mục hàng] để tập hợp dữ liệu của chúng tôi với

       name region  sales  expenses
0   William   East  50000     42000
1      Emma  North  52000     43000
2     Sofia   East  90000     50000
3    Markus  South  34000     44000
4    Edward   West  42000     38000
5    Thomas   West  72000     39000
6     Ethan  South  49000     42000
7    Olivia   West  55000     60000
8      Arun   West  67000     39000
9     Anika   East  65000     44000
10    Paulo  South  67000     45000
8

VÍ DỤ 1. Tập hợp con một khung dữ liệu gấu trúc dựa trên một biến số

Hãy bắt đầu với một ví dụ rất đơn giản

Ở đây, chúng tôi sẽ tập hợp con dữ liệu trên một biến số.

       name region  sales  expenses
0   William   East  50000     42000
1      Emma  North  52000     43000
2     Sofia   East  90000     50000
3    Markus  South  34000     44000
4    Edward   West  42000     38000
5    Thomas   West  72000     39000
6     Ethan  South  49000     42000
7    Olivia   West  55000     60000
8      Arun   West  67000     39000
9     Anika   East  65000     44000
10    Paulo  South  67000     45000
50

Chúng tôi sẽ truy xuất các hàng trong DataFrame trong đó

       name region  sales  expenses
0   William   East  50000     42000
1      Emma  North  52000     43000
2     Sofia   East  90000     50000
3    Markus  South  34000     44000
4    Edward   West  42000     38000
5    Thomas   West  72000     39000
6     Ethan  South  49000     42000
7    Olivia   West  55000     60000
8      Arun   West  67000     39000
9     Anika   East  65000     44000
10    Paulo  South  67000     45000
50 lớn hơn 60000

Để làm điều này, chúng tôi chỉ cần cung cấp một biểu thức logic bên trong dấu ngoặc đơn.

       name region  sales  expenses
0   William   East  50000     42000
1      Emma  North  52000     43000
2     Sofia   East  90000     50000
3    Markus  South  34000     44000
4    Edward   West  42000     38000
5    Thomas   West  72000     39000
6     Ethan  South  49000     42000
7    Olivia   West  55000     60000
8      Arun   West  67000     39000
9     Anika   East  65000     44000
10    Paulo  South  67000     45000
55

Hãy chạy mã để bạn có thể xem đầu ra

sales_data.query['sales > 60000']

NGOÀI

       name region  sales  expenses
0   William   East  50000     42000
1      Emma  North  52000     43000
2     Sofia   East  90000     50000
3    Markus  South  34000     44000
4    Edward   West  42000     38000
5    Thomas   West  72000     39000
6     Ethan  South  49000     42000
7    Olivia   West  55000     60000
8      Arun   West  67000     39000
9     Anika   East  65000     44000
10    Paulo  South  67000     45000
3

Lưu ý rằng khi chúng tôi chạy mã, nó sẽ trả về 5 hàng. DataFrame ban đầu có 11 hàng, nhưng đầu ra có 5

Ngoài ra, tất cả các hàng dữ liệu trong đầu ra đều đáp ứng các tiêu chí được xác định trong biểu thức logic

       name region  sales  expenses
0   William   East  50000     42000
1      Emma  North  52000     43000
2     Sofia   East  90000     50000
3    Markus  South  34000     44000
4    Edward   West  42000     38000
5    Thomas   West  72000     39000
6     Ethan  South  49000     42000
7    Olivia   West  55000     60000
8      Arun   West  67000     39000
9     Anika   East  65000     44000
10    Paulo  South  67000     45000
55. Tất cả các hồ sơ có doanh số lớn hơn 60000

Điều này thực sự đơn giản. Phương thức truy vấn đã sử dụng biểu thức

       name region  sales  expenses
0   William   East  50000     42000
1      Emma  North  52000     43000
2     Sofia   East  90000     50000
3    Markus  South  34000     44000
4    Edward   West  42000     38000
5    Thomas   West  72000     39000
6     Ethan  South  49000     42000
7    Olivia   West  55000     60000
8      Arun   West  67000     39000
9     Anika   East  65000     44000
10    Paulo  South  67000     45000
55 như một loại tiêu chí lọc. Nếu tiêu chí đúng cho một hàng cụ thể, thì hàng đó được đưa vào đầu ra. Nếu tiêu chí là sai cho một hàng cụ thể, nó sẽ bị loại trừ

Bây giờ hãy lưu ý rằng trong ví dụ đơn giản này, chúng tôi đã sử dụng dấu lớn hơn để lọc biến doanh số bán hàng. Đây là một việc cần làm, nhưng chúng ta cũng có thể kiểm tra tính tương đương [

       name region  sales  expenses
0   William   East  50000     42000
1      Emma  North  52000     43000
2     Sofia   East  90000     50000
3    Markus  South  34000     44000
4    Edward   West  42000     38000
5    Thomas   West  72000     39000
6     Ethan  South  49000     42000
7    Olivia   West  55000     60000
8      Arun   West  67000     39000
9     Anika   East  65000     44000
10    Paulo  South  67000     45000
58], kiểm tra giá trị lớn hơn hoặc bằng, ít hơn, v.v. Hầu như mọi toán tử so sánh sẽ hoạt động

Và như bạn sẽ thấy trong các ví dụ sắp tới, chúng ta có thể kết hợp các biểu thức bằng cách sử dụng các toán tử logic để tạo các biểu thức phức tạp hơn

VÍ DỤ 2. Chọn các hàng dựa trên một biến phân loại

Tiếp theo, chúng tôi sẽ chọn một nhóm các hàng bằng cách lọc trên một biến phân loại

Chúng tôi sẽ truy xuất tất cả các hàng trong đó

       name region  sales  expenses
0   William   East  50000     42000
1      Emma  North  52000     43000
2     Sofia   East  90000     50000
3    Markus  South  34000     44000
4    Edward   West  42000     38000
5    Thomas   West  72000     39000
6     Ethan  South  49000     42000
7    Olivia   West  55000     60000
8      Arun   West  67000     39000
9     Anika   East  65000     44000
10    Paulo  South  67000     45000
39 bằng với
sales_data.query['sales > 60000']
70

Để làm điều này, chúng ta sẽ gọi phương thức

       name region  sales  expenses
0   William   East  50000     42000
1      Emma  North  52000     43000
2     Sofia   East  90000     50000
3    Markus  South  34000     44000
4    Edward   West  42000     38000
5    Thomas   West  72000     39000
6     Ethan  South  49000     42000
7    Olivia   West  55000     60000
8      Arun   West  67000     39000
9     Anika   East  65000     44000
10    Paulo  South  67000     45000
8 bằng cách sử dụng “ký hiệu dấu chấm. ” Chúng tôi chỉ cần nhập tên của Khung dữ liệu của mình,
sales_data.query['sales > 60000']
72, sau đó nhập tên của phương thức,
       name region  sales  expenses
0   William   East  50000     42000
1      Emma  North  52000     43000
2     Sofia   East  90000     50000
3    Markus  South  34000     44000
4    Edward   West  42000     38000
5    Thomas   West  72000     39000
6     Ethan  South  49000     42000
7    Olivia   West  55000     60000
8      Arun   West  67000     39000
9     Anika   East  65000     44000
10    Paulo  South  67000     45000
8

Bên trong dấu ngoặc đơn của phương thức truy vấn, chúng ta có một biểu thức logic.

sales_data.query['sales > 60000']
74

Hãy chạy mã và xem đầu ra

Đây là mã

       name region  sales  expenses
0   William   East  50000     42000
1      Emma  North  52000     43000
2     Sofia   East  90000     50000
3    Markus  South  34000     44000
4    Edward   West  42000     38000
5    Thomas   West  72000     39000
6     Ethan  South  49000     42000
7    Olivia   West  55000     60000
8      Arun   West  67000     39000
9     Anika   East  65000     44000
10    Paulo  South  67000     45000
5

Và đây là đầu ra, là một khung dữ liệu mới

sales_data.query['sales > 60000']
7

Lưu ý rằng DataFrame đầu ra chứa tất cả các bản ghi cho khu vực Đông

Một vài lưu ý về điều này

Đầu tiên, biểu thức logic về mặt cú pháp chỉ là biểu thức logic Python. Ở đây, chúng tôi đang sử dụng toán tử tương đương từ Python, dấu bằng kép [

       name region  sales  expenses
0   William   East  50000     42000
1      Emma  North  52000     43000
2     Sofia   East  90000     50000
3    Markus  South  34000     44000
4    Edward   West  42000     38000
5    Thomas   West  72000     39000
6     Ethan  South  49000     42000
7    Olivia   West  55000     60000
8      Arun   West  67000     39000
9     Anika   East  65000     44000
10    Paulo  South  67000     45000
58]

Thứ hai, toàn bộ biểu thức logic được chứa bên trong dấu nháy đơn. Đó là, chúng tôi cung cấp biểu thức logic để. truy vấn [] ở dạng chuỗi. Truy vấn mong đợi một chuỗi

Thứ ba, chúng tôi đang tham khảo

sales_data.query['sales > 60000']
76, đây là một trong những giá trị duy nhất của biến
       name region  sales  expenses
0   William   East  50000     42000
1      Emma  North  52000     43000
2     Sofia   East  90000     50000
3    Markus  South  34000     44000
4    Edward   West  42000     38000
5    Thomas   West  72000     39000
6     Ethan  South  49000     42000
7    Olivia   West  55000     60000
8      Arun   West  67000     39000
9     Anika   East  65000     44000
10    Paulo  South  67000     45000
39. Lưu ý rằng giá trị này thực sự được chứa bên trong dấu ngoặc kép. Điều này là do chúng tôi coi các giá trị chuỗi của DataFrame là các chuỗi và do đó, nó cần phải nằm trong dấu ngoặc kép. Nhưng vì biểu thức tổng thể đã nằm trong dấu ngoặc đơn nên chúng ta cần sử dụng dấu ngoặc kép cho giá trị
sales_data.query['sales > 60000']
76. Nếu bạn không hiểu điều này, bạn cần xem lại quy tắc sử dụng dấu ngoặc kép bên trong dấu ngoặc kép với Python

VÍ DỤ 3. Tập hợp một DataFrame theo chỉ mục

Ở đây, chúng tôi sẽ tham chiếu chỉ mục của DataFrame và tập hợp con các hàng dựa trên chỉ mục đó

Trước tiên, hãy in ra DataFrame

sales_data.query['sales > 60000']
8

NGOÀI

       name region  sales  expenses
0   William   East  50000     42000
1      Emma  North  52000     43000
2     Sofia   East  90000     50000
3    Markus  South  34000     44000
4    Edward   West  42000     38000
5    Thomas   West  72000     39000
6     Ethan  South  49000     42000
7    Olivia   West  55000     60000
8      Arun   West  67000     39000
9     Anika   East  65000     44000
10    Paulo  South  67000     45000

Lưu ý rằng khi chúng tôi in ra DataFrame, mỗi hàng có một số nguyên được liên kết với nó ở phía bên trái, bắt đầu từ 0

Nhóm số này là chỉ số. Theo mặc định, khi chúng tôi tạo DataFrame, mỗi hàng sẽ được cung cấp một giá trị chỉ mục số như thế này [mặc dù, có nhiều cách để thay đổi chỉ mục thành thứ khác]

Chúng ta có thể tham chiếu các giá trị chỉ mục này bên trong truy vấn

Để làm điều này, chỉ cần sử dụng từ 'chỉ mục'

Đây là một ví dụ. Ở đây, chúng tôi sẽ trả về các hàng có chỉ số nhỏ hơn 3. Điều này sẽ trả về hiệu quả ba hàng đầu tiên

sales_data.query['sales > 60000']
0

NGOÀI

       name region  sales  expenses
0   William   East  50000     42000
1      Emma  North  52000     43000
2     Sofia   East  90000     50000
3    Markus  South  34000     44000
4    Edward   West  42000     38000
5    Thomas   West  72000     39000
6     Ethan  South  49000     42000
7    Olivia   West  55000     60000
8      Arun   West  67000     39000
9     Anika   East  65000     44000
10    Paulo  South  67000     45000
10

Lưu ý rằng trong kết quả này, các giá trị chỉ số [ở phía bên trái của bản in] đều nhỏ hơn 3

Bạn cũng có thể sử dụng các phép toán bên trong các biểu thức của mình và đây có thể là một kỹ thuật hữu ích để tập hợp dữ liệu của bạn theo những cách thú vị

Ví dụ: chúng tôi có thể sử dụng toán tử modulo [

sales_data.query['sales > 60000']
79] trên
sales_data.query['sales > 60000']
80 để truy xuất các hàng "lẻ" trong Khung dữ liệu của chúng tôi

       name region  sales  expenses
0   William   East  50000     42000
1      Emma  North  52000     43000
2     Sofia   East  90000     50000
3    Markus  South  34000     44000
4    Edward   West  42000     38000
5    Thomas   West  72000     39000
6     Ethan  South  49000     42000
7    Olivia   West  55000     60000
8      Arun   West  67000     39000
9     Anika   East  65000     44000
10    Paulo  South  67000     45000
11

NGOÀI

       name region  sales  expenses
0   William   East  50000     42000
1      Emma  North  52000     43000
2     Sofia   East  90000     50000
3    Markus  South  34000     44000
4    Edward   West  42000     38000
5    Thomas   West  72000     39000
6     Ethan  South  49000     42000
7    Olivia   West  55000     60000
8      Arun   West  67000     39000
9     Anika   East  65000     44000
10    Paulo  South  67000     45000
12

Sử dụng

sales_data.query['sales > 60000']
80 bên trong các biểu thức của bạn cho truy vấn là một cách tốt để đặt con có điều kiện vào chỉ mục

VÍ DỤ 4. Tập hợp một khung dữ liệu gấu trúc bằng cách so sánh hai cột

Bây giờ, hãy làm cho mọi thứ phức tạp hơn một chút

Ở đây, chúng ta sẽ so sánh hai biến –

       name region  sales  expenses
0   William   East  50000     42000
1      Emma  North  52000     43000
2     Sofia   East  90000     50000
3    Markus  South  34000     44000
4    Edward   West  42000     38000
5    Thomas   West  72000     39000
6     Ethan  South  49000     42000
7    Olivia   West  55000     60000
8      Arun   West  67000     39000
9     Anika   East  65000     44000
10    Paulo  South  67000     45000
50 và
       name region  sales  expenses
0   William   East  50000     42000
1      Emma  North  52000     43000
2     Sofia   East  90000     50000
3    Markus  South  34000     44000
4    Edward   West  42000     38000
5    Thomas   West  72000     39000
6     Ethan  South  49000     42000
7    Olivia   West  55000     60000
8      Arun   West  67000     39000
9     Anika   East  65000     44000
10    Paulo  South  67000     45000
51 – và trả về các hàng có doanh thu nhỏ hơn chi phí

       name region  sales  expenses
0   William   East  50000     42000
1      Emma  North  52000     43000
2     Sofia   East  90000     50000
3    Markus  South  34000     44000
4    Edward   West  42000     38000
5    Thomas   West  72000     39000
6     Ethan  South  49000     42000
7    Olivia   West  55000     60000
8      Arun   West  67000     39000
9     Anika   East  65000     44000
10    Paulo  South  67000     45000
13

NGOÀI

       name region  sales  expenses
0   William   East  50000     42000
1      Emma  North  52000     43000
2     Sofia   East  90000     50000
3    Markus  South  34000     44000
4    Edward   West  42000     38000
5    Thomas   West  72000     39000
6     Ethan  South  49000     42000
7    Olivia   West  55000     60000
8      Arun   West  67000     39000
9     Anika   East  65000     44000
10    Paulo  South  67000     45000
14

Việc này thật thẳng thắn. Biểu thức logic của chúng ta,

sales_data.query['sales > 60000']
84, hướng dẫn phương thức truy vấn trả về các hàng có doanh thu nhỏ hơn chi phí. Và đó là những gì trong đầu ra

Hãy nhớ rằng chúng ta có thể sử dụng nhiều hơn hai biến trong các biểu thức của mình hoặc làm cho các biểu thức trở nên phức tạp hơn bằng các toán tử logic

Tôi sẽ cho bạn thấy một ví dụ về điều đó trong ví dụ tiếp theo

VÍ DỤ 5. Tập hợp con một khung dữ liệu gấu trúc với nhiều điều kiện

Ở đây, chúng ta sẽ tập hợp con DataFrame dựa trên một biểu thức logic phức tạp. Biểu thức bao gồm hai biểu thức nhỏ hơn đang được kết hợp với toán tử

sales_data.query['sales > 60000']
85

Chúng tôi sẽ trả về các hàng có doanh số lớn hơn 50000 VÀ khu vực là 'Đông' hoặc 'Tây'

Đây là mã

       name region  sales  expenses
0   William   East  50000     42000
1      Emma  North  52000     43000
2     Sofia   East  90000     50000
3    Markus  South  34000     44000
4    Edward   West  42000     38000
5    Thomas   West  72000     39000
6     Ethan  South  49000     42000
7    Olivia   West  55000     60000
8      Arun   West  67000     39000
9     Anika   East  65000     44000
10    Paulo  South  67000     45000
15

Và đây là đầu ra

       name region  sales  expenses
0   William   East  50000     42000
1      Emma  North  52000     43000
2     Sofia   East  90000     50000
3    Markus  South  34000     44000
4    Edward   West  42000     38000
5    Thomas   West  72000     39000
6     Ethan  South  49000     42000
7    Olivia   West  55000     60000
8      Arun   West  67000     39000
9     Anika   East  65000     44000
10    Paulo  South  67000     45000
16

Lưu ý những hàng nào thực sự ở đầu ra. Tất cả các hàng đều có một khu vực là 'Đông' hoặc 'Tây'. Ngoài ra, tất cả các hàng có doanh số lớn hơn 50000

Chúng tôi đã làm điều này bằng cách tạo một biểu thức logic phức hợp bằng cách sử dụng toán tử

sales_data.query['sales > 60000']
85

Biểu thức tổng thể bên trong truy vấn là

sales_data.query['sales > 60000']
87

Chú ý rằng có hai phần. Phần đầu tiên là

sales_data.query['sales > 60000']
88. Phần thứ hai là
sales_data.query['sales > 60000']
89. Bản thân cả hai phần này đều là các biểu thức nhỏ sẽ tập hợp con DataFrame của chúng tôi. Nhưng ở đây, chúng ta đang kết hợp chúng với toán tử logic '______485'. Điều này yêu cầu truy vấn trả về các hàng có cả hai phần là
       name region  sales  expenses
0   William   East  50000     42000
1      Emma  North  52000     43000
2     Sofia   East  90000     50000
3    Markus  South  34000     44000
4    Edward   West  42000     38000
5    Thomas   West  72000     39000
6     Ethan  South  49000     42000
7    Olivia   West  55000     60000
8      Arun   West  67000     39000
9     Anika   East  65000     44000
10    Paulo  South  67000     45000
1

Nếu muốn, bạn cũng có thể sử dụng toán tử logic '

       name region  sales  expenses
0   William   East  50000     42000
1      Emma  North  52000     43000
2     Sofia   East  90000     50000
3    Markus  South  34000     44000
4    Edward   West  42000     38000
5    Thomas   West  72000     39000
6     Ethan  South  49000     42000
7    Olivia   West  55000     60000
8      Arun   West  67000     39000
9     Anika   East  65000     44000
10    Paulo  South  67000     45000
2' và toán tử logic '
       name region  sales  expenses
0   William   East  50000     42000
1      Emma  North  52000     43000
2     Sofia   East  90000     50000
3    Markus  South  34000     44000
4    Edward   West  42000     38000
5    Thomas   West  72000     39000
6     Ethan  South  49000     42000
7    Olivia   West  55000     60000
8      Arun   West  67000     39000
9     Anika   East  65000     44000
10    Paulo  South  67000     45000
3' bên trong các biểu thức của mình. Về cơ bản, bạn sử dụng các toán tử logic Python để tạo các biểu thức phức tạp hơn và tập hợp con dữ liệu của mình theo những cách phức tạp hơn

VÍ DỤ 6. tham chiếu các biến cục bộ bên trong truy vấn

Bây giờ, hãy làm điều gì đó hơi khác một chút

Cho đến nay, chúng tôi đã tham chiếu đến các biến thực sự bên trong DataFrame. Chúng tôi đã tham khảo tên của các cột, như

       name region  sales  expenses
0   William   East  50000     42000
1      Emma  North  52000     43000
2     Sofia   East  90000     50000
3    Markus  South  34000     44000
4    Edward   West  42000     38000
5    Thomas   West  72000     39000
6     Ethan  South  49000     42000
7    Olivia   West  55000     60000
8      Arun   West  67000     39000
9     Anika   East  65000     44000
10    Paulo  South  67000     45000
50 và
       name region  sales  expenses
0   William   East  50000     42000
1      Emma  North  52000     43000
2     Sofia   East  90000     50000
3    Markus  South  34000     44000
4    Edward   West  42000     38000
5    Thomas   West  72000     39000
6     Ethan  South  49000     42000
7    Olivia   West  55000     60000
8      Arun   West  67000     39000
9     Anika   East  65000     44000
10    Paulo  South  67000     45000
51

Bây giờ, chúng ta sẽ tham chiếu một biến bên ngoài khung dữ liệu

Ở đây, chúng tôi sẽ tính giá trị trung bình của biến doanh số bán hàng và lưu trữ nó dưới dạng một biến riêng biệt bên ngoài Khung dữ liệu của chúng tôi

       name region  sales  expenses
0   William   East  50000     42000
1      Emma  North  52000     43000
2     Sofia   East  90000     50000
3    Markus  South  34000     44000
4    Edward   West  42000     38000
5    Thomas   West  72000     39000
6     Ethan  South  49000     42000
7    Olivia   West  55000     60000
8      Arun   West  67000     39000
9     Anika   East  65000     44000
10    Paulo  South  67000     45000
17

Và chúng ta hãy nhìn vào giá trị

       name region  sales  expenses
0   William   East  50000     42000
1      Emma  North  52000     43000
2     Sofia   East  90000     50000
3    Markus  South  34000     44000
4    Edward   West  42000     38000
5    Thomas   West  72000     39000
6     Ethan  South  49000     42000
7    Olivia   West  55000     60000
8      Arun   West  67000     39000
9     Anika   East  65000     44000
10    Paulo  South  67000     45000
18

NGOÀI

       name region  sales  expenses
0   William   East  50000     42000
1      Emma  North  52000     43000
2     Sofia   East  90000     50000
3    Markus  South  34000     44000
4    Edward   West  42000     38000
5    Thomas   West  72000     39000
6     Ethan  South  49000     42000
7    Olivia   West  55000     60000
8      Arun   West  67000     39000
9     Anika   East  65000     44000
10    Paulo  South  67000     45000
19

Biến này,

       name region  sales  expenses
0   William   East  50000     42000
1      Emma  North  52000     43000
2     Sofia   East  90000     50000
3    Markus  South  34000     44000
4    Edward   West  42000     38000
5    Thomas   West  72000     39000
6     Ethan  South  49000     42000
7    Olivia   West  55000     60000
8      Arun   West  67000     39000
9     Anika   East  65000     44000
10    Paulo  South  67000     45000
6, chỉ giữ giá trị trung bình của biến doanh số bán hàng của chúng tôi

Tiếp theo, chúng ta sẽ tham khảo biến đó

Để làm điều này, chúng ta sẽ sử dụng ký tự '

       name region  sales  expenses
0   William   East  50000     42000
1      Emma  North  52000     43000
2     Sofia   East  90000     50000
3    Markus  South  34000     44000
4    Edward   West  42000     38000
5    Thomas   West  72000     39000
6     Ethan  South  49000     42000
7    Olivia   West  55000     60000
8      Arun   West  67000     39000
9     Anika   East  65000     44000
10    Paulo  South  67000     45000
7' trước biến

Hãy nhìn vào mã

       name region  sales  expenses
0   William   East  50000     42000
1      Emma  North  52000     43000
2     Sofia   East  90000     50000
3    Markus  South  34000     44000
4    Edward   West  42000     38000
5    Thomas   West  72000     39000
6     Ethan  South  49000     42000
7    Olivia   West  55000     60000
8      Arun   West  67000     39000
9     Anika   East  65000     44000
10    Paulo  South  67000     45000
0

Và đây là đầu ra

       name region  sales  expenses
0   William   East  50000     42000
1      Emma  North  52000     43000
2     Sofia   East  90000     50000
3    Markus  South  34000     44000
4    Edward   West  42000     38000
5    Thomas   West  72000     39000
6     Ethan  South  49000     42000
7    Olivia   West  55000     60000
8      Arun   West  67000     39000
9     Anika   East  65000     44000
10    Paulo  South  67000     45000
3

Lưu ý rằng đối với tất cả các hàng, doanh số lớn hơn 58454. 545 [giá trị trung bình của doanh thu]

VÍ DỤ 7. Sửa đổi DataFrame tại chỗ

Cuối cùng, hãy làm một ví dụ nữa

Ở đây, chúng tôi sẽ sửa đổi DataFrame "tại chỗ"

Điều đó có nghĩa là chúng tôi sẽ trực tiếp sửa đổi DataFrame mà chúng tôi đang vận hành, thay vì tạo một DataFrame mới

Bây giờ hãy ghi nhớ. sửa đổi DataFrame tại chỗ có thể gặp rủi ro, vì chúng tôi sẽ ghi đè lên dữ liệu của mình

Trong trường hợp đó, tôi thực sự sẽ tạo một DataFrame trùng lặp đầu tiên được gọi là

       name region  sales  expenses
0   William   East  50000     42000
1      Emma  North  52000     43000
2     Sofia   East  90000     50000
3    Markus  South  34000     44000
4    Edward   West  42000     38000
5    Thomas   West  72000     39000
6     Ethan  South  49000     42000
7    Olivia   West  55000     60000
8      Arun   West  67000     39000
9     Anika   East  65000     44000
10    Paulo  South  67000     45000
8. Bằng cách này, khi chúng tôi sửa đổi dữ liệu, chúng tôi sẽ ghi đè lên bản sao và giữ nguyên bản gốc của chúng tôi

       name region  sales  expenses
0   William   East  50000     42000
1      Emma  North  52000     43000
2     Sofia   East  90000     50000
3    Markus  South  34000     44000
4    Edward   West  42000     38000
5    Thomas   West  72000     39000
6     Ethan  South  49000     42000
7    Olivia   West  55000     60000
8      Arun   West  67000     39000
9     Anika   East  65000     44000
10    Paulo  South  67000     45000
2

Bây giờ, hãy sửa đổi

       name region  sales  expenses
0   William   East  50000     42000
1      Emma  North  52000     43000
2     Sofia   East  90000     50000
3    Markus  South  34000     44000
4    Edward   West  42000     38000
5    Thomas   West  72000     39000
6     Ethan  South  49000     42000
7    Olivia   West  55000     60000
8      Arun   West  67000     39000
9     Anika   East  65000     44000
10    Paulo  South  67000     45000
8

Ở đây, chúng tôi sẽ chọn các hàng có

sales_data.query['sales > 60000']
00, nhưng chúng tôi sẽ trực tiếp sửa đổi Khung dữ liệu bằng cách đặt
       name region  sales  expenses
0   William   East  50000     42000
1      Emma  North  52000     43000
2     Sofia   East  90000     50000
3    Markus  South  34000     44000
4    Edward   West  42000     38000
5    Thomas   West  72000     39000
6     Ethan  South  49000     42000
7    Olivia   West  55000     60000
8      Arun   West  67000     39000
9     Anika   East  65000     44000
10    Paulo  South  67000     45000
33

       name region  sales  expenses
0   William   East  50000     42000
1      Emma  North  52000     43000
2     Sofia   East  90000     50000
3    Markus  South  34000     44000
4    Edward   West  42000     38000
5    Thomas   West  72000     39000
6     Ethan  South  49000     42000
7    Olivia   West  55000     60000
8      Arun   West  67000     39000
9     Anika   East  65000     44000
10    Paulo  South  67000     45000
3

Và hãy in ra đầu ra

       name region  sales  expenses
0   William   East  50000     42000
1      Emma  North  52000     43000
2     Sofia   East  90000     50000
3    Markus  South  34000     44000
4    Edward   West  42000     38000
5    Thomas   West  72000     39000
6     Ethan  South  49000     42000
7    Olivia   West  55000     60000
8      Arun   West  67000     39000
9     Anika   East  65000     44000
10    Paulo  South  67000     45000
4

NGOÀI

       name region  sales  expenses
0   William   East  50000     42000
1      Emma  North  52000     43000
2     Sofia   East  90000     50000
3    Markus  South  34000     44000
4    Edward   West  42000     38000
5    Thomas   West  72000     39000
6     Ethan  South  49000     42000
7    Olivia   West  55000     60000
8      Arun   West  67000     39000
9     Anika   East  65000     44000
10    Paulo  South  67000     45000
5

Lưu ý rằng các hàng trong

       name region  sales  expenses
0   William   East  50000     42000
1      Emma  North  52000     43000
2     Sofia   East  90000     50000
3    Markus  South  34000     44000
4    Edward   West  42000     38000
5    Thomas   West  72000     39000
6     Ethan  South  49000     42000
7    Olivia   West  55000     60000
8      Arun   West  67000     39000
9     Anika   East  65000     44000
10    Paulo  South  67000     45000
8 đáp ứng tiêu chí của chúng tôi là chỉ mục phải nhỏ hơn 5. Ngoài ra, lưu ý rằng truy vấn đã sửa đổi DataFrame trực tiếp [thay vì tạo DataFrame mới]

Câu hỏi thường gặp về truy vấn Pandas

Dưới đây là một số câu hỏi thường gặp về phương pháp truy vấn Pandas

Các câu hỏi thường gặp

Lợi thế của việc sử dụng
       name region  sales  expenses
0   William   East  50000     42000
1      Emma  North  52000     43000
2     Sofia   East  90000     50000
3    Markus  South  34000     44000
4    Edward   West  42000     38000
5    Thomas   West  72000     39000
6     Ethan  South  49000     42000
7    Olivia   West  55000     60000
8      Arun   West  67000     39000
9     Anika   East  65000     44000
10    Paulo  South  67000     45000
8 trên dấu ngoặc là gì

Trong Python, có nhiều cách để chọn hàng từ khung dữ liệu Pandas

Cho đến nay, phổ biến nhất là tập hợp con bằng cách sử dụng "ký hiệu ngoặc". Đây là một ví dụ [lưu ý rằng chúng tôi đang sử dụng DataFrame

sales_data.query['sales > 60000']
72 được tạo ở trên]

       name region  sales  expenses
0   William   East  50000     42000
1      Emma  North  52000     43000
2     Sofia   East  90000     50000
3    Markus  South  34000     44000
4    Edward   West  42000     38000
5    Thomas   West  72000     39000
6     Ethan  South  49000     42000
7    Olivia   West  55000     60000
8      Arun   West  67000     39000
9     Anika   East  65000     44000
10    Paulo  South  67000     45000
6

Điều này về cơ bản tương đương với mã này bằng cách sử dụng truy vấn

       name region  sales  expenses
0   William   East  50000     42000
1      Emma  North  52000     43000
2     Sofia   East  90000     50000
3    Markus  South  34000     44000
4    Edward   West  42000     38000
5    Thomas   West  72000     39000
6     Ethan  South  49000     42000
7    Olivia   West  55000     60000
8      Arun   West  67000     39000
9     Anika   East  65000     44000
10    Paulo  South  67000     45000
7

Lưu ý mã sạch hơn bao nhiêu khi chúng ta sử dụng truy vấn. Nó dễ đọc hơn. Mã trông giống "tiếng Anh" hơn và ít giống cú pháp máy tính lộn xộn hơn

Trong phiên bản "ngoặc", chúng ta cần gõ liên tục tên của DataFrame. Chỉ để tham chiếu một biến, chúng ta cần nhập tên của DataFrame [i. e. ,

sales_data.query['sales > 60000']
06]

Tuy nhiên, trong phiên bản truy vấn, chúng tôi chỉ cần nhập tên của cột

Hơn nữa, khi chúng ta sử dụng phương thức truy vấn Pandas, chúng ta có thể sử dụng phương thức này trong một "chuỗi" phương thức Pandas, tương tự như cách bạn sử dụng đường ống trong dplyr của R

Cuối cùng, sử dụng phương thức truy vấn sẽ dễ viết hơn, dễ đọc hơn và mạnh mẽ hơn vì bạn có thể sử dụng nó cùng với các phương thức khác

Truy vấn trong Pandas so với mã SQL như thế nào

Nếu bạn có nền tảng về SQL, bạn có thể đang cố gắng tìm cách viết lại các truy vấn SQL của mình bằng Pandas

Nếu đúng như vậy, bạn cần biết cách dịch cú pháp SQL sang Pandas

Vì vậy, nếu bạn đang cố dịch SQL sang Pandas, làm thế nào để

       name region  sales  expenses
0   William   East  50000     42000
1      Emma  North  52000     43000
2     Sofia   East  90000     50000
3    Markus  South  34000     44000
4    Edward   West  42000     38000
5    Thomas   West  72000     39000
6     Ethan  South  49000     42000
7    Olivia   West  55000     60000
8      Arun   West  67000     39000
9     Anika   East  65000     44000
10    Paulo  South  67000     45000
8 phù hợp?

Phương thức truy vấn giống như một câu lệnh

sales_data.query['sales > 60000']
08 trong SQL

Bạn có thể sử dụng truy vấn để chỉ định các điều kiện mà hàng của bạn phải đáp ứng để được trả lại

Để lại câu hỏi khác của bạn trong các ý kiến ​​​​dưới đây

Bạn có thêm câu hỏi về phương pháp truy vấn Pandas?

Để lại câu hỏi của bạn trong phần bình luận bên dưới

Tham gia khóa học của chúng tôi để tìm hiểu thêm về Pandas

Nếu bạn nghiêm túc về việc học Pandas, bạn nên đăng ký khóa học Pandas cao cấp của chúng tôi có tên là Pandas Mastery

Pandas Mastery sẽ dạy cho bạn mọi thứ bạn cần biết về Pandas, bao gồm

  • Cách tập hợp dữ liệu Python của bạn
  • Tổng hợp dữ liệu với Pandas
  • Cách định hình lại dữ liệu của bạn
  • và hơn thế nữa

Hơn nữa, nó sẽ giúp bạn hoàn toàn làm chủ cú pháp trong vòng vài tuần. Bạn sẽ khám phá cách trở nên "thông thạo" trong việc viết mã Pandas để thao tác dữ liệu của bạn

Làm cách nào để viết truy vấn SQL trong DataFrame của gấu trúc?

Có thể thực hiện bằng lệnh pd. phương thức concat nếu chúng ta đang sử dụng Pandas. Nếu chúng tôi đang sử dụng SQL, chúng tôi sẽ cần phải tạo cột số hàng đang chạy và nối hai bảng bằng cách sử dụng số hàng . Vì Pandasql sử dụng SQLite bên trong, nên một bảng SQLite sẽ có cột rowid được tạo theo mặc định.

Truy vấn DF là gì?

Khung dữ liệu. query[] lấy điều kiện trong biểu thức để chọn các hàng từ DataFrame . Biểu thức này có thể có một hoặc nhiều điều kiện. # Truy vấn tất cả các hàng có Khóa học bằng 'Spark' df2=df. truy vấn["Khóa học == 'Spark'"] in[df2]

Có thể truy vấn dữ liệu bằng thư viện gấu trúc không?

Pandasql cho phép bạn viết truy vấn SQL để truy vấn dữ liệu của bạn từ khung dữ liệu gấu trúc . Điều này cho phép bạn vượt qua yêu cầu thông thường là phải học nhiều Python trong Pandas. Thay vào đó, bạn có thể chỉ cần viết truy vấn SQL thông thường của mình trong một lệnh gọi hàm và chạy nó trên khung dữ liệu Pandas để truy xuất dữ liệu của bạn.

Ví dụ về DataFrame trong Python là gì?

DataFrame là cấu trúc dữ liệu được gắn nhãn 2 chiều với các cột thuộc các loại có thể khác nhau . Bạn có thể coi nó giống như một bảng tính hoặc bảng SQL hoặc một lệnh của các đối tượng Sê-ri. Nó thường là đối tượng gấu trúc được sử dụng phổ biến nhất.

Chủ Đề