images
18/01/2021 10:30 am

Làm quen việc Xử lý dữ liệu với Pandas - Phần 1

Pandas là một thư viện python rất tiện dụng cho việc xử lý dữ liệu. Được viết dựa trên numpy nên pandas tính toán khá nhanh.

Đặc bi    ệt pandas có sẵn các method để tổng hợp, sắp xếp và lọc dữ liệu nên bạn sẽ có thể làm được nhiều điều chỉ với vài dòng code đơn giản. Hôm nay TechZone xin đưa ra một số các ví dụ phổ biến trong việc dùng pandas.


Trước khi đi vào chi tiết từng ví dụ, chúng ta cần install pandas và import vào chương trình của chúng ta.


Install pandas


Trên cửa sổ terminal/cmd các bạn chạy lệnh. Chú ý trên một số máy có nhiều version python thì bạn nhớ dùng đúng version python mà bạn muốn thêm pandas vào


pip install pandas


Hoặc:


python3.7 -m pip install pandas


Import pandas vào chương trình


import pandas as pd


Load dữ liệu


1. Load từ csv:

Document:https://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.read_csv.html


file_path = 'order-test-data.csv'

df = pd.read_csv(file_path


2. Load từ excel:

Document: https://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.read_excel.html


file_path = 'order-test-data.xlsx

df = pd.read_excel(file_path)


3. Load từ json:

Document: https://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.read_json.html


df = pd.read_json(json_object)


Ở phần trên, chúng ta đã load dữ liệu vào một biến mà mình đặt tên là df, biến này là một Data Frame. Bạn có thể hình dung nó như một table trong excel. Các column được gọi là Series. 


Truy cập dữ liệu trong dataframe


1. Lấy tên columns và indexs:

df.columns

Df.indexs


2. Lấy values:

Document: https://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.DataFrame.values.html

df.values


Khi đấy nó sẽ trả về một 2D numpy array


3. Lấy ra một column:

Ví dụ để lấy column tên là PRODUCT_ID từ biến df


df['PRODUCT_ID']


4. Lấy ra một row:


Ví dụ: Lấy dòng thứ nhất:


df.ix[1]


Tìm và xử lý dữ liệu bị thiếu


1. Tìm ra tên các column có dữ liệu bị thiếu:

    df.columns[df.isna().any()].tolist()


2. Lấy ra các column có dữ liệu thiếu:

    df.loc[:, df.isna().any()]


3. Xoá các row có dữ liệu bị thiếu:


Document: https://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.DataFrame.dropna.html


df.dropna()


Nếu bạn cần giới hạn trường để check thì có thể truyền subset vào. Ví dụ như bạn muốn chỉ check DISCOUNT và TAX:


df.dropna(subset=[‘DISCOUNT’, ‘TAX’])


4. Xoá các column có dữ liệu bị thiếu:

df.dropna(axis='columns')

5. Thay thế dữ liệu bị thiếu bằng một giá trị:


Document: https://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.DataFrame.fillna.html


df.fillna(0)


Nếu bạn muốn dùng các giá trị khác nhau trên các cột khác nhau bạn có thể truyền vào một map giá trị. Ví dụ:


            values = {'A': 0, 'B': 1, 'C': 2, 'D': 3}

            df.fillna(value=values


Thống kê mô tả


Pandas cho phép bạn thực hiện một số thống kê đơn giản 


1. Mô tả toàn bộ table:

df.describe()



2. Vẽ histogram:


df.hist()


df['TOTAL'].hist(bins=100)



3. Tính median, min, max, mean, count, sum:


Chúng ta có thể lấy ra các thông tin thống kê đối với từng trường. Chẳng hạn khi quan tâm tới TOTAL của các đơn hàng, chúng ta có thể sử dụng:


            df['TOTAL'].median()

            df['TOTAL'].min()

            df['TOTAL'].max()

            df['TOTAL'].mean()

            df['TOTAL'].count()

    df['TOTAL'].sum()


Trong phần tiếp theo TechZone sẽ ví dụ về filter, group, sort… trên tập data này. Nếu như bạn có thắc mắc hay chủ đề nào giải đáp nhớ comment đặt hàng với TechZone nhé.


À mà quên, những phần này để thực hành thì bạn nên cài jupyter, việc code và thử sẽ dễ dàng và nhanh hơn. Phần cài đặt jupyter tụi mình có note lại TẠI ĐÂY, nếu bạn chưa cài thì click tham khảo nhé. 


Tham khảo: Cheat sheet: http://datasciencefree.com/pandas.pdf 

 

- Tech Zone -


Thư giãn chút nào!!!

Bài viết liên quan