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ị None
và Nan
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à groupby
và count
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 20 chứa số lượng giá trị duy nhất
6.0 1
15.0 3
Name: colB, dtype: int64
>>> 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 21 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ị
6.0 1
15.0 3
Name: colB, dtype: int64
>>> df.groupby['colB']['colB'].count[]5.0 22, bạn chỉ cần đặt đối số
6.0 1
15.0 3
Name: colB, dtype: int64
>>> df.groupby['colB']['colB'].count[]5.0 23 thành
6.0 1
15.0 3
Name: colB, dtype: int64
>>> df.groupby['colB']['colB'].count[]5.0 24
6.0 1
15.0 3
Name: colB, dtype: int64
>>> 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 25, như minh họa bên dưới
6.0 1
15.0 3
Name: colB, dtype: int64
>>> 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 27
6.0 1
15.0 3
Name: colB, dtype: int64
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 28 xuất hiện trong cột
6.0 1
15.0 3
Name: colB, dtype: int64
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