Python đếm số lần một từ xuất hiện trong một cột

Đếm tần suất từ ​​trong phần tử danh sách trong Python là một nhiệm vụ tương đối phổ biến - đặc biệt là khi tạo dữ liệu phân phối cho biểu đồ

Giả sử chúng tôi có một danh sách

hello      3
goodbye    1
bye        1
howdy      1
hi         1
dtype: int64
3 - chúng tôi có hai lần xuất hiện trên "b" và một trong "a". Hướng dẫn này sẽ chỉ cho bạn ba cách khác nhau để đếm số lần xuất hiện của từ trong danh sách Python

  • Sử dụng Pandas và Numpy
  • Sử dụng Hàm
    hello      3
    goodbye    1
    bye        1
    howdy      1
    hi         1
    dtype: int64
    
    4
  • Sử dụng
    hello      3
    goodbye    1
    bye        1
    howdy      1
    hi         1
    dtype: int64
    
    5 của Mô-đun Bộ sưu tập
  • Sử dụng Vòng lặp và Biến đếm

Trong thực tế, bạn sẽ sử dụng Pandas/Numpy, hàm ________ 04 hoặc một hàm ________ 05 vì chúng khá thuận tiện để sử dụng

Sử dụng Pandas và Numpy

Cách ngắn nhất và dễ dàng nhất để có được số lượng giá trị ở định dạng dễ thao tác [

hello      3
goodbye    1
bye        1
howdy      1
hi         1
dtype: int64
8] là thông qua Numpy và Pandas. Chúng ta có thể bọc danh sách thành một mảng Numpy, sau đó gọi phương thức
hello      3
goodbye    1
bye        1
howdy      1
hi         1
dtype: int64
9 của thể hiện
df = pd.value_counts[np.array[words]]

print['Index:', df.index]
print['Values:', df.values]
0 [cũng có sẵn cho tất cả các thể hiện của
hello      3
goodbye    1
bye        1
howdy      1
hi         1
dtype: int64
8]

import numpy as np
import pandas as pd

words = ['hello', 'goodbye', 'howdy', 'hello', 'hello', 'hi', 'bye']

pd.value_counts[np.array[words]]

Điều này dẫn đến một

hello      3
goodbye    1
bye        1
howdy      1
hi         1
dtype: int64
8 có chứa

hello      3
goodbye    1
bye        1
howdy      1
hi         1
dtype: int64

Bạn có thể truy cập trường

df = pd.value_counts[np.array[words]]

print['Index:', df.index]
print['Values:', df.values]
3 của nó để tự đếm số lượng hoặc
df = pd.value_counts[np.array[words]]

print['Index:', df.index]
print['Values:', df.values]
4 để tự lấy các từ

df = pd.value_counts[np.array[words]]

print['Index:', df.index]
print['Values:', df.values]

Kết quả này trong

hello      3
goodbye    1
bye        1
howdy      1
hi         1
dtype: int64
5

Sử dụng hàm đếm[]

Cách "tiêu chuẩn" [không có thư viện bên ngoài] để có được số lần xuất hiện từ trong danh sách là sử dụng hàm

hello      3
goodbye    1
bye        1
howdy      1
hi         1
dtype: int64
4 của đối tượng danh sách

Phương thức

hello      3
goodbye    1
bye        1
howdy      1
hi         1
dtype: int64
4 là một hàm dựng sẵn lấy một phần tử làm đối số duy nhất của nó và trả về số lần phần tử đó xuất hiện trong danh sách

Độ phức tạp của hàm

hello      3
goodbye    1
bye        1
howdy      1
hi         1
dtype: int64
4 là O[n], trong đó
df = pd.value_counts[np.array[words]]

print['Index:', df.index]
print['Values:', df.values]
8 là số thừa số có trong danh sách

Đoạn mã dưới đây sử dụng

hello      3
goodbye    1
bye        1
howdy      1
hi         1
dtype: int64
4 để lấy số lần xuất hiện của một từ trong danh sách

hello      3
goodbye    1
bye        1
howdy      1
hi         1
dtype: int64
1

Điều này sẽ cung cấp cho chúng tôi đầu ra giống như trước khi sử dụng các vòng lặp

hello      3
goodbye    1
bye        1
howdy      1
hi         1
dtype: int64
2

Phương thức

hello      3
goodbye    1
bye        1
howdy      1
hi         1
dtype: int64
4 cung cấp cho chúng ta một cách dễ dàng để lấy số lần xuất hiện từ trong danh sách cho từng từ riêng lẻ

Sử dụng Bộ đếm của Mô-đun Bộ sưu tập

Thể hiện của lớp

hello      3
goodbye    1
bye        1
howdy      1
hi         1
dtype: int64
5 có thể được sử dụng để đếm các thể hiện của các đối tượng khác. Bằng cách chuyển một danh sách vào hàm tạo của nó, chúng tôi khởi tạo một
hello      3
goodbye    1
bye        1
howdy      1
hi         1
dtype: int64
5 trả về một từ điển gồm tất cả các phần tử và sự xuất hiện của chúng trong một danh sách

Từ đó, để có được sự xuất hiện của một từ, bạn chỉ cần sử dụng từ đó làm chìa khóa cho từ điển

hello      3
goodbye    1
bye        1
howdy      1
hi         1
dtype: int64
6

Kết quả này trong

hello      3
goodbye    1
bye        1
howdy      1
hi         1
dtype: int64
2

Sử dụng Vòng lặp và Biến đếm

Cuối cùng, một cách tiếp cận vũ phu lặp qua từng từ trong danh sách, tăng bộ đếm lên một khi từ được tìm thấy và trả về tổng số từ sẽ hoạt động

Hãy xem hướng dẫn thực hành, thực tế của chúng tôi để học Git, với các phương pháp hay nhất, tiêu chuẩn được ngành chấp nhận và bao gồm bảng gian lận. Dừng các lệnh Git trên Google và thực sự tìm hiểu nó

Tất nhiên, phương pháp này trở nên kém hiệu quả hơn khi kích thước danh sách tăng lên, nó chỉ dễ hiểu và dễ thực hiện về mặt khái niệm

Đoạn mã dưới đây sử dụng cách tiếp cận này trong phương thức

hello      3
goodbye    1
bye        1
howdy      1
hi         1
dtype: int64
53

Nếu bạn chạy mã này, bạn sẽ thấy đầu ra này

hello      3
goodbye    1
bye        1
howdy      1
hi         1
dtype: int64
2

Tốt đẹp và dễ dàng

Giải pháp hiệu quả nhất?

Đương nhiên - bạn sẽ tìm kiếm giải pháp hiệu quả nhất nếu bạn đang xử lý khối từ lớn. Hãy so sánh tất cả những thứ này để xem chúng hoạt động như thế nào

Nhiệm vụ có thể được chia thành việc tìm kiếm các lần xuất hiện cho tất cả các từ hoặc một từ duy nhất và chúng tôi sẽ thực hiện các điểm chuẩn cho cả hai, bắt đầu với tất cả các từ

hello      3
goodbye    1
bye        1
howdy      1
hi         1
dtype: int64
0

Kết quả nào trong

hello      3
goodbye    1
bye        1
howdy      1
hi         1
dtype: int64
0

Phương thức

hello      3
goodbye    1
bye        1
howdy      1
hi         1
dtype: int64
4 cực kỳ nhanh so với các biến thể khác, tuy nhiên, nó không cung cấp cho chúng ta các nhãn liên quan đến số đếm như hai biến thể kia.

Nếu bạn cần nhãn - thì

hello      3
goodbye    1
bye        1
howdy      1
hi         1
dtype: int64
5 hoạt động tốt hơn quy trình gói danh sách không hiệu quả trong một mảng Numpy rồi đếm

Mặt khác, bạn có thể sử dụng các phương thức của DataFrame để sắp xếp hoặc thao tác khác mà bạn không thể làm khác.

hello      3
goodbye    1
bye        1
howdy      1
hi         1
dtype: int64
5 cũng có một số phương pháp độc đáo

Cuối cùng, bạn có thể sử dụng

hello      3
goodbye    1
bye        1
howdy      1
hi         1
dtype: int64
5 để tạo từ điển và biến từ điển thành một
hello      3
goodbye    1
bye        1
howdy      1
hi         1
dtype: int64
8, để tận dụng tốc độ của
hello      3
goodbye    1
bye        1
howdy      1
hi         1
dtype: int64
5 và tính linh hoạt của
hello      3
goodbye    1
bye        1
howdy      1
hi         1
dtype: int64
8

hello      3
goodbye    1
bye        1
howdy      1
hi         1
dtype: int64
1

Nếu bạn không cần nhãn -

hello      3
goodbye    1
bye        1
howdy      1
hi         1
dtype: int64
4 là cách tốt nhất

Ngoài ra, nếu bạn đang tìm kiếm một từ duy nhất

Kết quả nào trong

hello      3
goodbye    1
bye        1
howdy      1
hi         1
dtype: int64
2

Các phương pháp tìm kiếm brute force và

hello      3
goodbye    1
bye        1
howdy      1
hi         1
dtype: int64
4 vượt trội hơn so với
hello      3
goodbye    1
bye        1
howdy      1
hi         1
dtype: int64
5, chủ yếu là do
hello      3
goodbye    1
bye        1
howdy      1
hi         1
dtype: int64
5 vốn đã đếm tất cả các từ thay vì một từ

Phần kết luận

Trong hướng dẫn này, chúng tôi đã khám phá việc tìm kiếm sự xuất hiện của từ trong danh sách Python, đánh giá hiệu quả của từng giải pháp và cân nhắc xem mỗi giải pháp phù hợp hơn

Chủ Đề