Hướng dẫn hàm filter() trong python

Cú pháp của hàm filter[] như thế nào, nó có những tham số gì và cách sử dụng ra sao? Mời bạn đọc theo dõi.

Hàm filter[] trong Python lọc ra khóa chặn các phần tử theo điều kiện tài khoản của hàm func từ list giả mạo , dict.. chia sẻ . Hàm này danh sách sẽ chỉ trả về an toàn những giá trị sửa lỗi mà điều kiện trong func chấp nhận [có nghĩa là True] qua mạng . Cú pháp tổng hợp của hàm filter[] như thế nào tăng tốc , nó có hướng dẫn những tham số gì kỹ thuật và cách sử dụng ra sao địa chỉ ? Mời bạn đọc theo dõi.

Cú pháp hàm filter[] trong Python

filter[func download , iterable]

Các tham số dịch vụ của hàm filter[]

Hàm filter[] có 2 tham số:

  • func: là hàm điều kiện cập nhật để kiểm tra qua app các phần tử trong interable là đúng hay sai ở đâu tốt , func chỉ quản lý có thể trả về True dữ liệu hoặc False.
  • interable: là kỹ thuật các iterable cần lọc kiểm tra , tăng tốc có thể là set bản quyền , list hay nhất , tuple xóa tài khoản hoặc container.

Ví dụ : Hàm filter[] hoạt động thế nào?

# danh sách chữ cái
alphabet = ["a" ở đâu tốt , "b" nạp tiền , "d" kinh nghiệm , "e" tốc độ , "i" kiểm tra , "j" qua web , "o"]

# lọc nguyên âm
# viết  tự động  bởi Quantrimang.com
def filterNguyenam[alphabet]:
nguyenam = ["a" trên điện thoại , "e" ứng dụng , "i" tốt nhất , "o" ứng dụng , "u"]

if[alphabet in nguyenam]:
return True
else:
return False

filterNguyenam = filter[filterNguyenam download , alphabet]

print["Các nguyên âm  kích hoạt  được lọc là:"]
for nguyenam in filterNguyenam:
print[nguyenam]

Chạy chương trình ở đâu uy tín , kết quả trả về là:

Các nguyên âm  xóa tài khoản  được lọc là:
a
e
i
o

Ở đây địa chỉ , ta liệt kê một danh sách dữ liệu các chữ cái nguyên nhân và cần lọc ra miễn phí các nguyên âm trong đó.

Bạn xóa tài khoản có thể sử dụng vòng lặp for kỹ thuật để kiểm tra từng thành phần trong danh sách khóa chặn và lưu trữ nó sang một danh sách khác xóa tài khoản , link down nhưng sử dụng Python full crack thì trên điện thoại quá trình này tổng hợp sẽ dễ dàng hơn kích hoạt và nhanh hơn bằng cách dùng phương thức filter[].

Ví dụ 2: filter[] hoạt động không cần func.

# random list
# viết  mật khẩu  bởi Quantrimang.com
randomList = [1 qua app , "a" dữ liệu , 0 mật khẩu , False trực tuyến , True tổng hợp , "0"]

filteredList = filter[None tối ưu , randomList]

print["Các phần tử  tăng tốc  được lọc là:"]
for element in filteredList:
print[element]

Chạy chương trình tối ưu , kết quả trả về là:

Các phần tử  nạp tiền  được lọc là:
1
a
True
0

Ở đây tất toán , ta có một danh sách ngẫu nhiên gồm cả số qua web , chuỗi phải làm sao và boolean gọi là randomList giá rẻ . Chúng ta truyền randomList vào hàm filter[] trực tuyến với tham số đầu tiên [func] là None chi tiết . Lúc này kích hoạt , hàm tự mặc định trở thành Identity function tối ưu , vậy nên ta nhận trực tuyến được qua mạng các phần tử TRUE là 1 tải về , a ở đâu uy tín , True tăng tốc và "0" ["0" ở dạng chuỗi].

Bài trước: Hàm hasattr[] trong Python

Bài tiếp: Hàm int[] trong Python

4.9/5 [58 votes]

Có thể bạn quan tâm:

  • Nguyên nhân và cách sửa lỗi 0x80070057 trên Windows
  • Cách tìm lại quảng cáo đã xem gần đây trên Instagram
  • Cách cài hình nền cuộc gọi trên Samsung
  • Mời tải 2 ứng dụng chỉnh sửa PDF tổng giá trị 9,98USD, đang miễn phí trên Windows 10
  • Cách kết nối Wifi cho máy tính để bàn, PC

In this tutorial, we will learn about the Python filter[] function with the help of examples.

Nội dung chính

  • filter[] Syntax
  • filter[] Arguments
  • filter[] Return Value
  • Example 1: Working of filter[]
  • Example 2: Using Lambda Function Inside filter[]
  • Example 3: Using None as a Function Inside filter[]
  • Cấu trúc hàm Filter [Filter function]
  • Cấu trúc của hàm:
  • Những chú ý về đặc điểm của hàm:
  • Những trường hợp xảy ra lỗi
  • Hàm FILTER – các ví dụ
  • Lọc theo 1 điều kiện
  • Lọc theo nhiều điều kiện
  • Hàm Filter có gì đặc biệt
  • So với AutoFilter: giảm thời gian thao tác
  • So với Advanced Filter: tự động hoàn toàn không cần VBA và hơn thế nữa
  • So với công thức mảng: Đơn giản hơn rất nhiều

Nội dung chính

  • filter[] Syntax
  • filter[] Arguments
  • filter[] Return Value
  • Example 1: Working of filter[]
  • Example 2: Using Lambda Function Inside filter[]
  • Example 3: Using None as a Function Inside filter[]
  • Cấu trúc hàm Filter [Filter function]
  • Cấu trúc của hàm:
  • Những chú ý về đặc điểm của hàm:
  • Những trường hợp xảy ra lỗi
  • Hàm FILTER – các ví dụ
  • Lọc theo 1 điều kiện
  • Lọc theo nhiều điều kiện
  • Hàm Filter có gì đặc biệt
  • So với AutoFilter: giảm thời gian thao tác
  • So với Advanced Filter: tự động hoàn toàn không cần VBA và hơn thế nữa
  • So với công thức mảng: Đơn giản hơn rất nhiều

The filter[] function extracts elements from an iterable [list, tuple etc.] for which a function returns True.

Example

numbers = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]

# returns True if number is even
def check_even[number]:
    if number % 2 == 0:
          return True  

    return False

# Extract elements from the numbers list for which check_even[] returns True even_numbers_iterator = filter[check_even, numbers]

# converting to list even_numbers = list[even_numbers_iterator] print[even_numbers] # Output: [2, 4, 6, 8, 10]

filter[] Syntax

Its syntax is:

filter[function, iterable]

filter[] Arguments

The filter[] function takes two arguments:

  • function - a function
  • iterable - an iterable like sets, lists, tuples etc.

filter[] Return Value

The filter[] function returns an iterator.

Note: You can easily convert iterators to sequences like lists, tuples, strings etc.

Example 1: Working of filter[]

letters = ['a', 'b', 'd', 'e', 'i', 'j', 'o']

# a function that returns True if letter is vowel
def filter_vowels[letter]:
    vowels = ['a', 'e', 'i', 'o', 'u']
    return True if letter in vowels else False

filtered_vowels = filter[filter_vowels, letters]

# converting to tuple vowels = tuple[filtered_vowels] print[vowels]

Output

['a', 'e', 'i', 'o']

Here, the filter[] function extracts only the vowel letters from the letters list. Here's how this code works:

  • Each element of the letters list is passed to the filter_vowels[] function.
  • If filter_vowels[] returns True, that element is extracted otherwise it's filtered out.

Note: It's also possible to filter lists using a loop, however, using the filter[] function is much more cleaner.

Example 2: Using Lambda Function Inside filter[]

numbers = [1, 2, 3, 4, 5, 6, 7]

# the lambda function returns True for even numbers 
even_numbers_iterator = filter[lambda x: [x%2 == 0], numbers]

# converting to list
even_numbers = list[even_numbers_iterator]

print[even_numbers]

Output

[2, 4, 6]

Here, we have directly passed a lambda function inside filter[].

Our lambda function returns True for even numbers. Hence, the filter[] function returns an iterator containing even numbers only.

Example 3: Using None as a Function Inside filter[]

# random list
random_list = [1, 'a', 0, False, True, '0']

filtered_iterator = filter[None, random_list]

#converting to list filtered_list = list[filtered_iterator] print[filtered_list]

Output

[1, 'a', True, '0']

When None is used as the first argument to the filter[] function, all elements that are truthy values [gives True if converted to boolean] are extracted.

Nếu như trước đây khi muốn lọc dữ liệu và kết xuất dữ liệu ra một vị trí khác thì chúng ta thường sử dụng các công cụ như Filter, Advanced Filter, công thức mảng. Tuy nhiên những công việc này khiến chúng ta tốn nhiều thao tác, nhiều thời gian và đôi khi khó để thực hiện. Có phải bạn mong muốn có 1 hàm trong Excel giúp làm việc này thật đơn giản, thật dễ dàng? Tin vui là Office 365 đã cung cấp cho chúng ta hàm Filter để làm điều này. Vậy hàm này có gì đặc biệt và cách dùng nó như thế nào? Hãy cùng Học Excel Online khám phá nào.

  • Cấu trúc hàm Filter [Filter function]
    • Cấu trúc của hàm:
    • Những chú ý về đặc điểm của hàm:
    • Những trường hợp xảy ra lỗi
  • Hàm FILTER – các ví dụ
    • Lọc theo 1 điều kiện
    • Lọc theo nhiều điều kiện
  • Hàm Filter có gì đặc biệt
    • So với AutoFilter: giảm thời gian thao tác
    • So với Advanced Filter: tự động hoàn toàn không cần VBA và hơn thế nữa
    • So với công thức mảng: Đơn giản hơn rất nhiều

Cấu trúc hàm Filter [Filter function]

Hàm này có tác dụng lọc dữ liệu đồng thời kết xuất dữ liệu lọc được sang 1 vị trí khác [ô khác, sheet khác, workbook khác].

Dưới đây là một ứng dụng của hàm Filter – ham loc giúp lọc ra các mặt hàng có tên là Táo:

Cấu trúc của hàm:

=FILTER[array,include,[if_empty]]

  • array: vùng dữ liệu cần lọc [không bắt buộc phải có tiêu đề]
  • include: điều kiện cần lọc là gì, nằm trong cột nào [xác định đồng thời cả 2 yếu tố này]
  • if_empty: Nếu không có kết quả thì trả về giá trị gì? [không bắt buộc nhập]

Những chú ý về đặc điểm của hàm:

Sau đây là những chú ý về chức năng filter trong excel:

  • Hàm trả về kết quả là dạng mảng, dựa theo số cột của arraysố dòng kết quả thu được
  • Không phụ thuộc vào tiêu đề của các trường dữ liệu.
  • Kết quả trả về không kèm theo định dạng của dữ liệu gốc
  • Không cần sử dụng dạng công thức mảng

Những trường hợp xảy ra lỗi

Trường hợp 1: Không có kết quả lọc theo điều kiện nêu ra

Nếu không có kết quả phù hợp và không quy định tại if_empty, hàm sẽ trả về lỗi #CALC! [không tính toán được]

Trong trường hợp này, chúng ta sẽ cần xác định giá trị tại tham số if_empty là rỗng [hai dấu nháy kép liền nhau] để không thể hiện lỗi, hoặc thông báo về việc không tìm thấy kết quả.

Trường hợp 2: Có xen lẫn các giá trị khác trong vùng kết quả

Vì kết quả của hàm Filter trả về dạng mảng, nên khi có lẫn các giá trị khác trong vùng này [do người dùng tự nhập vào] thì sẽ báo lỗi #SPILL! [kết quả sẽ tràn lên dữ liệu đã có]

Do đó khi sử dụng hàm này cần đảm bảo khoảng trống cho vùng kết quả, không có dữ liệu nào nằm lẫn vào vùng này.

Hàm FILTER – các ví dụ

Lọc theo 1 điều kiện

Trong ảnh ví dụ ở đầu bài viết, công thức trong ô G5 là

=FILTER[B5:D13,D5:D13=H2,"Không tìm thấy"]

Chúng ta có thể diễn giải công thức này ra một cách dễ hiểu là: lọc trong vùng B5:D13 những dòng mà cột D có giá trị là Red.

Chúng ta có thể viết công thức trên như sau [viết điều kiện trực tiếp vào công thức]

=FILTER[B5:D13,D5:D13="Red","Không tìm thấy"]

Tuy nhiên việc viết điều kiện trực tiếp vào công thức này là không nên, bởi vì khi điều kiện thay đổi, chúng ta phải vào trong công thức để chỉnh sửa. Do vậy, việc để điều kiện ở 1 ô bên ngoài công thức, sau đó tham chiếu tới ô đó sẽ giúp chúng ta có công thức linh hoạt hơn.

Lọc theo nhiều điều kiện

Chúng ta có thể sử dụng nhiều điều kiện phức tạp để lọc dữ liệu với hàm FILTER. Giả sử, trong vùng dữ liệu B5:D13, chúng ta muốn giữ lại những dòng dữ liệu thoả mãn 2 tiêu chí sau đây cùng lúc:

  • Cột D có giá trị là Red
  • Cột C có giá trị lớn hơn hoặc bằng 80

Công thức chúng ta có thể sử dụng trong trường hợp này là:

=FILTER[B5:D13,[D5:D13=H2]*[C5:C13>=80],"Không tìm thấy"]

Cách viết và hiểu đoạn [D5:D13=H2]*[C5:C13>=80] , bạn có thể tìm hiểu thêm trong bài viết về SUMPRODUCT sau đây:

Hàm Filter có gì đặc biệt

Phải nói là rất đặc biệt, rất tuyệt vời. Nếu như bạn đã từng vất vả với công thức mảng, tốn thời gian với ham loc Filter, khó chịu với kết quả của Advanced Filter thì khi sử dụng hàm Filter sẽ thấy được sự khác biệt rất lớn.

So với AutoFilter: giảm thời gian thao tác

Nếu như bạn chưa biết các sử dụng Filter hay các tính năng của Filter thì có thể tham khảo bài viết:

Cách lọc dữ liệu trong Excel

Như vậy chúng ta thấy để có thể đưa ra được kết quả cho báo cáo chi tiết, các thao tác thường dùng là:

  • Áp dụng AutoFilter cho bảng dữ liệu
  • Lọc dữ liệu theo từng vị trí dòng tiêu đề
  • Copy kết quả lọc được
  • Dán phần giá trị [Paste Special / Value] của những giá trị còn lại sau khi lọc vào vị trí cần báo cáo

Rất nhiều thao tác và tốn thời gian phải không nào. Để khắc phục nhược điểm tốn thời gian và nhiều thao tác này, chúng ta có thêm AdvancedFilter, có công thức mảng hỗ trợ. Tuy nhiên những công cụ này vẫn có những nhược điểm.

So với Advanced Filter: tự động hoàn toàn không cần VBA và hơn thế nữa

Advanced Filter là một công cụ khá tốt để trích lọc dữ liệu theo nhiều điều kiện. Lý do nó chỉ “khá tốt” là:

  • Tiết kiệm thời gian lọc dữ liệu, nhưng không tự động hoàn toàn. Nếu muốn tự động thì phải áp dụng thêm VBA
  • Không sử dụng công thức nên không tốn tài nguyên, nhưng việc xây dựng vùng điều kiện cũng phức tạp.
  • Phụ thuộc hoàn toàn vào tiêu đề của bảng dữ liệu. Do đó nó hạn chế nhiều nếu bảng dữ liệu không có tiêu đề sẽ không làm đúng.
  • Kết quả lọc mang đúng định dạng của dữ liệu gốc. Điều này khiến chúng ta không thể định dạng dữ liệu theo ý muốn.

Các bạn có thể tham khảo một số bài viết sau để thấy tính ứng dụng của Advanced Filter:

Tự động lọc danh sách không trùng với Advanced Filter VBA cực kỳ đơn giản

Hướng dẫn cách lập báo cáo chi tiết NXT kho bằng Advanced Filter trong Excel

Hướng dẫn cách lọc dữ liệu sang sheet khác bằng Advanced Filter trong Excel

Do đó khi sử dụng hàm Filter, chúng ta sẽ thấy không cần tạo vùng điều kiện, không cần có VBA, kết quả định dạng theo ý muốn.

So với công thức mảng: Đơn giản hơn rất nhiều

Chúng ta từng biết tới việc sử dụng công thức dạng mảng như OFFSET để làm báo cáo chi tiết như với bài sau:

Hướng dẫn cách viết công thức lập báo cáo chi tiết tự động trong Excel

Có thể thấy công thức rất dài và khó. Bởi vì chúng ta phải thực hiện 2 yêu cầu đồng thời trong 1  câu lệnh:

  • Lọc ra các kết quả đúng
  • Trích xuất các kết quả ra báo cáo, mà các nội dung phải liền nhau

Với những hàm trước đây, để làm được công việc trên cần dùng nhiều hàm, phân tích logic khá phức tạp. Nhưng nay với hàm Filter, việc này trở nên dễ dàng hơn bao giờ hết.

Đó là những hướng dẫn sơ qua về cách sử dụng filter trong Excel. Trong các bài viết tiếp theo, Học Excel Online sẽ giúp các bạn hiểu rõ hơn cách sử dụng hàm Filter với nhiều điều kiện để làm báo cáo chi tiết. Các bạn chú ý đón xem nhé.

Bài Viết Liên Quan

Chủ Đề