Pandas đếm giá trị trong cột

Trong Pandas, Bạn có thể đếm số lượng từng hàng của DataFrame bằng phương pháp DataFrame.count[]. Để có được số lượng hàng, bạn nên sử dụng axis='columns' làm đối số cho phương thức đếm[]. Lưu ý rằng phương thức đếm [] bỏ qua tất cả các giá trị Không và nan từ số đếm


df.count[axis='columns']

Hãy xem với một ví dụ


import pandas as pd
import numpy as np
technologies= {
    'Courses':["Spark","PySpark","Hadoop","Python","Pandas"],
    'Courses Fee' :[22000,25000,23000,24000,26000],
    'Duration':['30days','50days','30days', None,np.nan],
    'Discount':[1000,2300,1000,1200,2500]
          }
df = pd.DataFrame[technologies]
print[df]

Sản lượng dưới sản lượng


   Courses  Courses Fee Duration  Discount
0    Spark        22000   30days      1000
1  PySpark        25000   50days      2300
2   Hadoop        23000   30days      1000
3   Python        24000     None      1200
4   Pandas        26000      NaN      2500

Pandas Nhận số lượng của mỗi ví dụ hàng DataFrame

Bây giờ, hãy chạy DatFrame.count[] để đếm số lượng của mỗi hàng bằng cách bỏ qua các giá trị NoneNan

Phương thức count[] đếm số lượng giá trị không trống cho mỗi hàng hoặc cột nếu bạn chỉ định tham số trục là axis='columns' và trả về một đối tượng Sê-ri với kết quả cho mỗi hàng [hoặc cột]

Khi làm việc với DataFrames của gấu trúc, chúng tôi thường cần kiểm tra dữ liệu và trích xuất một vài số liệu mà cuối cùng sẽ giúp chúng tôi hiểu dữ liệu tốt hơn hoặc thậm chí xác định một số điểm bất thường. Một nhiệm vụ rất đơn giản nhưng phổ biến mà chúng ta cần thực hiện trong công việc hàng ngày là tính số lần một giá trị nhất định xuất hiện trong DataFrame

Trong hướng dẫn ngắn ngày hôm nay, chúng tôi sẽ giới thiệu cách đếm tần suất của các giá trị nhất định trên [các] cột DataFrame của gấu trúc. Chúng ta sẽ khám phá cách tính tần suất cho tất cả các giá trị duy nhất xuất hiện trong cột đó hoặc chỉ một giá trị cụ thể

Trước tiên, hãy tạo một DataFrame mẫu mà chúng ta sẽ tham khảo trong suốt hướng dẫn này để minh họa một số khái niệm

import pandas a pddf = pd.DataFrame[
[
[1, 5, 'A', True],
[2, 15, 'A', False],
[3, 5, 'B', True],
[4, 6, 'A', False],
[5, 15, 'C', True],
[6, None, 'B', True],
[7, 15, 'A', False],
],
columns=['colA', 'colB', 'colC', 'colD']
]
print[df]
colA colB colC colD
0 1 5.0 A True
1 2 15.0 A False
2 3 5.0 B True
3 4 6.0 A False
4 5 15.0 C True
5 6 NaN B True
6 7 15.0 A False

Sử dụng nhóm

Tùy chọn đầu tiên chúng tôi có khi tính số lần một giá trị nhất định xuất hiện trong một cột cụ thể là groupbycount giá trị cụ thể đó. Giả sử rằng chúng ta muốn đếm xem mỗi giá trị trong cột colB xuất hiện bao nhiêu lần. Biểu thức sau đây sẽ thực hiện thủ thuật cho chúng ta

>>> df.groupby['colB']['colB'].count[]5.0     2
6.0 1
15.0 3
Name: colB, dtype: int64

Lưu ý rằng biểu thức trên sẽ cung cấp tần suất cho mọi giá trị khác null xuất hiện trong cột được chỉ định

Sử dụng value_counts

Ngoài ra, chúng ta có thể sử dụng phương thức pandas.Series.value_counts[] sẽ trả về một con gấu trúc

>>> df.groupby['colB']['colB'].count[]5.0     2
6.0 1
15.0 3
Name: colB, dtype: int64
0 chứa số lượng giá trị duy nhất

>>> df['colB'].value_counts[]15.0    3
5.0 2
6.0 1
Name: colB, dtype: int64

Theo mặc định,

>>> df.groupby['colB']['colB'].count[]5.0     2
6.0 1
15.0 3
Name: colB, dtype: int64
1 sẽ trả về tần suất cho các giá trị khác null. Nếu bạn cũng muốn bao gồm tần suất của các giá trị
>>> df.groupby['colB']['colB'].count[]5.0     2
6.0 1
15.0 3
Name: colB, dtype: int64
2, bạn chỉ cần đặt đối số
>>> df.groupby['colB']['colB'].count[]5.0     2
6.0 1
15.0 3
Name: colB, dtype: int64
3 thành
>>> df.groupby['colB']['colB'].count[]5.0     2
6.0 1
15.0 3
Name: colB, dtype: int64
4

>>> df['colB'].value_counts[dropna=False]15.0    3
5.0 2
NaN 1
6.0 1
Name: colB, dtype: int64

Thêm số đếm dưới dạng một cột mới

Trong trường hợp bạn muốn thêm kết quả trở lại DataFrame ban đầu, bạn cần sử dụng phương pháp

>>> df.groupby['colB']['colB'].count[]5.0     2
6.0 1
15.0 3
Name: colB, dtype: int64
5, như minh họa bên dưới

>>> df['colB_cnt'] = df.groupby['colB']['colB'].transform['count']
>>> df
colA colB colC colD colB_cnt
0 1 5.0 A True 2.0
1 2 15.0 A False 3.0
2 3 5.0 B True 2.0
3 4 6.0 A False 1.0
4 5 15.0 C True 3.0
5 6 NaN B True NaN
6 7 15.0 A False 3.0

Bây giờ mỗi hàng sẽ có tần suất liên quan của giá trị xuất hiện trong cột colB bên dưới cột mới tạo

>>> df.groupby['colB']['colB'].count[]5.0     2
6.0 1
15.0 3
Name: colB, dtype: int64
7

Lấy tần số của một giá trị cụ thể

Trong các phần trước, chúng tôi đã giới thiệu cách tính tần suất cho tất cả các giá trị duy nhất xuất hiện trong một cột cụ thể. Nếu bạn quan tâm đến tần suất của chỉ một giá trị, thì bạn có thể sử dụng bất kỳ phương pháp nào sau đây [giả sử chúng ta muốn số lần giá trị

>>> df.groupby['colB']['colB'].count[]5.0     2
6.0 1
15.0 3
Name: colB, dtype: int64
8 xuất hiện trong cột colB]

>>> [df.colB.values == 15].sum[]
3
>>> [df.colB == 15].sum[]
3
>>> len[df[df['colB'] == 15]]
3

Suy nghĩ cuối cùng

Trong bài viết ngắn ngày hôm nay, chúng tôi đã khám phá một vài tùy chọn khác nhau khi tính tần suất của các giá trị trong một cột DataFrame cụ thể của gấu trúc. Ngoài ra, chúng tôi đã giới thiệu cách chúng tôi có thể thêm số lượng/tần suất được tính toán dưới dạng một cột mới trong Khung dữ liệu hiện tại của chúng tôi

Cuối cùng, chúng tôi đã khám phá cách tính tần suất của một giá trị cụ thể trong cột DataFrame bằng một vài tùy chọn khác nhau

Trở thành thành viên và đọc mọi câu chuyện trên Medium. Phí thành viên của bạn hỗ trợ trực tiếp cho tôi và các nhà văn khác mà bạn đọc. Bạn cũng sẽ có toàn quyền truy cập vào mọi câu chuyện trên Phương tiện

Làm cách nào để đếm giá trị trong Pandas?

Phương thức đếm khung dữ liệu Pandas[] . The count[] method counts the number of not empty values for each row, or column if you specify the axis parameter as axis='columns' , and returns a Series object with the result for each row [or column].

Value_counts[] trả về cái gì?

Trả về a Chuỗi chứa số giá trị duy nhất . Đối tượng kết quả sẽ theo thứ tự giảm dần sao cho phần tử đầu tiên là phần tử xuất hiện thường xuyên nhất. Loại trừ các giá trị NA theo mặc định.

Chủ Đề