Nhóm bởi trăn

Groupby là nhóm những dữ liệu giống nhau quay lại trong Khung dữ liệu tại một cột nào đó để ta tìm ra điểm chung của dữ liệu đó, ví dụ trong ngày thứ nhất chúng ta bán được một số lượng sản phẩm, ngày thứ 2 bán được một

No. chúng ta bắt đầu thôi và đừng quên nhập thư viện và tạo khung dữ liệu nhé

import pandas as pd
# Create dataframe
data = {'Company':['GOOG','GOOG','MSFT','MSFT','FB','FB'],
       'Person':['Sam','Charlie','Amy','Vanessa','Carl','Sarah'],
       'Sales':[200,120,340,124,243,350]}

Tạo 1 khung dữ liệu

df = pd.DataFrame[data]
print[df]

đầu ra

Nhìn vào df trên ta thấy cột “công ty” có chứa các tên công ty giống nhau. Bây giờ chúng ta có thể sử dụng phương thức. groupby[] để nhóm các hàng lại với nhau dựa trên tên cột công ty. Thao tác này sẽ tạo một đối tượng DataFrameGroupBy

# Tạo một đối tượng groupby
df.groupby['Company']

đầu ra

Lúc này chỉ trả về cho ta một nhóm đối tượng, trích dẫn muốn xuất thông tin ta cần sử dụng nhóm đối tượng này để thao tác

by_comp = df.groupby["Company"]
by_comp.mean[]# lấy giá trị trung bình của sale

đầu ra

Rifty speed

# Dùng hàm std lấy độ lệch chuẩn của Sale
by_comp.std[]

đầu ra

Giá trị tối thiểu, tối đa của đối tượng

by_comp.min[]
by_comp.max[]

Đầu ra tối thiểu

Đầu ra tối đa

Dem value in company

# Để đếm giá trị ta dùng hàm count[]
by_comp.count[]

đầu ra

Thống kê cơ bản trong công ty đối tượng

# Để thống kê ta dùng hàm describe
by_comp.describe[].transpose[]

đầu ra

 

________số 8

Pivot Table trong pandas

Pivot Table khá tương đồng với GroupBy bên trên là lấy dữ liệu theo cột đơn dữ liệu đầu vào và nhóm các mục trở lại, đều áp dụng nguyên lý tách-áp dụng-kết hợp giống nhau, tuy nhiên dữ liệu sẽ được phân tích và tổng hợp

cú pháp

 

pandas.pivot_table[data, values=None, index=None, columns=None, aggfunc='mean', fill_value=None, margins=False, dropna=True, margins_name='All', observed=False]
  • dữ liệu. Khung dữ liệu
  • giá trị [tùy chọn]. column to composit
  • mục lục. cột, nhóm hoặc mảng. If a array has been transfer to, then must have a length with data
  • cột. cột, nhóm hoặc mảng. Tương tự như chỉ mục
  • aggfunc. [mặc định. bần tiện]. datasumation function
  • fill_value. giá trị được điền vào ô dữ liệu NA [sau khi tính toán]
  • lề. [bool, mặc định. Sai]. Thêm một cột tính tất cả các giá trị của các cột còn lại theo hàm tổng hợp
  • margins_name [chuỗi, mặc định. 'Tất cả các']. Tên của cột lề
  • dropna. [bool, mặc định. Sai]. Bỏ đi các hàng có chứa NA

ta xem lại data frame trên nhé

GIờ ta áp dụng bảng Pivot áp dụng vào df trên nhóm các giá trị theo yêu cầu của chúng ta

Ta muôn nhóm các tên công ty lại thành cột, đưa tên nhân viên ra làm chỉ mục và giá trị là doanh số bán hàng

df = pd.DataFrame[data]
print[df]
0

đầu ra

Thông thường, khi xử lý các dữ liệu giống nhau, ta thường sử dụng groupby và pivot table để nhóm lại và lấy thông tin chúng ta cần

Trong số này, bước phân chia nhóm [1] là đơn giản nhất. Trên thực tế, trong nhiều trường hợp, bạn có thể chia tệp dữ liệu thành các nhóm và làm bất cứ điều gì với các nhóm đó. Trong bước [2], mong muốn có thể là một trong những điều sau

Tổng hợp [Tổng hợp/Giảm]. phân tích thống kê trong một nhóm. Ví dụ

Tính tổng, nghĩa, tiêu chuẩn, tối thiểu, tối đa của nhóm dữ liệu

Tính toán số lượng nhóm [size/count]

Chuyển đổi [Transformation]. thực hiện một nhóm công cụ tính toán có thể và trả về một loại chỉ mục giống. ví dụ

Chuẩn hóa dữ liệu [zscore] trong nhóm

Điền các giá trị NA bằng một giá trị từ các nhóm

Filter [Lọc]. loại bỏ một số nhóm, tính toán theo nhóm Đánh giá đúng hay sai. ví dụ

Loại bỏ thuộc tính nhóm dữ liệu chỉ với một vài thành viên

Lọc dữ liệu dựa trên tổng hoặc nghĩa của nhóm

Hoặc là kết hợp của các điều khiển trên. GroupBy sẽ kiểm tra kết quả của các bước và cố gắng trả lại một kết quả hợp lý nếu nó không phù hợp với một trong hai loại trên

Bài học bao gồm

+ nhóm theo

+ Tổng hợp [Tổng/Giảm]

Cú pháp trong gấu trúc tự nhiên hơn cách làm trong sql

Expendition in sql, groupby as after

df = pd.DataFrame[data]
print[df]
1

Ví dụ, groupby trong dataframe

df = pd.DataFrame[data]
print[df]
2

BÍ QUYẾT, THUẬT, MẸO. Chú ý với chuỗi dữ liệu kiểu [dữ liệu phân loại] ở cột A và cột B. Ta cần chuyển A và B về loại danh mục để có được những lợi ích sau. Chú ý, tăng tốc các hoạt động đặc biệt là trong groupby[]

df = pd.DataFrame[data]
print[df]
3

Ví dụ, groupby trong Series

df = pd.DataFrame[data]
print[df]
4

Theo mặc định, các phím được sắp xếp trong quá trình nhóm. Tuy nhiên, bạn không thể sắp xếp theo phép gán sort = False để tăng tốc

df = pd.DataFrame[data]
print[df]
5

Ta could accept the results of groupby is type dictionaryqua property “groups”

df = pd.DataFrame[data]
print[df]
6

Duyệt qua toàn bộ nhóm

df = pd.DataFrame[data]
print[df]
7

Phương thức get_group[] giúp ta có được giá trị của một nhóm. Ví dụ

df = pd.DataFrame[data]
print[df]
8

tổng hợp

Các phép “aggregation/reduction” có sẵn như sum[], count[],mean[] outside ta có thể tự định nghĩa nhiều “aggregation” riêng cho dữ liệu của mình

Tạo một khung dữ liệu để minh họa cho bài học

df = pd.DataFrame[data]
print[df]
9

Ví dụ sau. so sánh kết quả của “aggregate” sử dụng hàm có sắn np. tổng và một hàm tự viết để tính tổng trong một nhóm

# Tạo một đối tượng groupby
df.groupby['Company']
0

Một ví dụ cho việc sử dụng tập hợp tùy chỉnh

df = pd.DataFrame[data]
print[df]
20

Trong quá trình “aggregation” ta có thể áp dụng cùng lúc nhiều hàm

df = pd.DataFrame[data]
print[df]
21

Ta có thể áp dụng từng hàm cho từng cột trong quá trình “tổng hợp”

df = pd.DataFrame[data]
print[df]
22

Kết luận

Trong bài viết này, bạn đọc đã có thể học cách xác định và chia dataframe theo các nhóm để tiến hành tổng hợp [Tổng hợp/Giảm] hoặc phân tích bổ sung [ví dụ như tính tổng, tiêu chuẩn, tối thiểu, tối đa. ]. Bạn đọc sẽ được học cách chuyển đổi và lọc dữ liệu, bao gồm cách phát hiện các giá trị ngoại lệ [outliers] và xử lý các giá trị bị thiếu ở bài tiếp theo

Chủ Đề