2.2. Thu Vien Pandas

You might also like

Download as pdf or txt
Download as pdf or txt
You are on page 1of 49

PHÂN TÍCH

DỮ LIỆU
Chương 2

NGÔN NGỮ
LẬP TRÌNH
THƯ VIỆN
Nội dung

1. Giới thiệu thư viện Pandas


2. Chức năng thư viện Pandas
3. Cấu trúc dữ liệu trong Pandas
4. Hàm cơ bản trong Pandas
1 Giới thiệu thư viện Pandas

• Pandas do Wes McKinney xây dựng vào năm 2008


• Pandas được viết tắt từ “Panel Data” và“Python Data
Snalysis”.
• Pandas là một thư viện của Python dung để nâng
cao khả năng làm việc của Numpy, Scipy và
Matplotlib.
• Pandas không phải thay thế Numpy, Scipy và
Matplotlib. Nhưng Pandas được xây dựng bên
ttreen Numpy.
1 Giới thiệu thư viện Pandas

• Pandas là thư viện miễn phí cho ngôn ngữ Python.


• Pandas thường được dung để thao tác và phân tích dữ liệu.
• Pandas cung cấp các cấu trúc dữ liệu đặc biệt để thực hiện trên dữ liệu
dạng bảng và dữ liệu chuỗi thời gian (time series)
2 Chức năng thư viện Pandas

- Pandas trích xuất dữ liệu từ file csv vào data-frame (dạng


table
- Áp dụng các phép toán thống kê để đưa ra các câu trả lời
dựa trên dữ liệu như:
o Giá trị trung bình, trung vị, lớn nhất, nhỏ nhất của mỗi
thuộc tính?
o Thuộc tính A có liên quan với thuộc tính B hay không?
o Sự phân bố của thuộc tính C như thế nào?
- Làm sạch dữ liệu: loại bỏ/thêm dữ liệu thiếu, lọc các giá trị trong 1 thuộc tính,
thay đổi giá trị….
- Trực quan dữ liệu dựa trên thư viện Matplotlib: Lines, histograms, scatter…
- Chuyển đổi, lưu trữ dữ liệu sau khi đã làm sạch….
2 Chức năng thư viện Pandas
3 Cấu trúc dữ liệu trong Pandas

Cấu trúc dữ liệu Số chiều Mô tả

Series 1 Mảng 1 chiều (cột)

Mảng 2 chiều, kích thước có thể thay đổi. Các cột


Data frames 2
lưu trữ dữ liệu khác nhau.

Panel 3 Mảng 3 chiều, kích thước có thể thay đổi


3 Cấu trúc dữ liệu trong Pandas
Kiểu dữ liệu Series
- Pandas Series được định nghĩa như mảng 1 index
chiều. Series có thể lưu được nhiều lại dữ
liệu khác nhau như: string, interger, float….
- Series có thể được chuyển đổi từ các loại dữ
liệu khác như: list, tuple, dictionary.
- Nhãn của dòng được gọi là index.

Đặc điểm:
- Đồng nhất dữ liệu
- Kích thước có thể thay đổi
- Giá trị có thể thay đổi
3 Cấu trúc dữ liệu trong Pandas

Series có thể được tạo từ: list, ndarray, dictionary và scalar.


Cú pháp tạo series:
pandas.Series( data, index, dtype, copy)

Parameters:
data: dữ liệu từ ndarray, list, constants
index: Index values must be unique and hashable, same length as data..
dtype: dtype là loại dữ liệu. Nếu không có thì tự suy ra
copy: Copy data. Default False
3 Cấu trúc dữ liệu trong Pandas

DataFrame
- Dataframe là cấu trúc dữ liệu 2
chiều.
- DataFrame được sử dụng để lưu
trữ dữ liệu theo dạng bảng, bao
gồm hàng và cột.

Đặc điểm:
- Các cột có thể lưu các kiểu dữ liệu khác nhau
- Kích thước có thể thay đổi
- Có tên dòng, tên cột. Nếu không đặt thì mặc định bắt đầu từ 0
- Có thể thực hiện các phép toán trên dòng hoặc cột.
3 Cấu trúc dữ liệu trong Pandas

DataFrame có thể được tạo từ:


- List,
Cú pháp tạo dataframe:
- Numpy ndarray
pandas.DataFrame(data, index, columns, dtype)
- Dictionary
- Series Tham số:
- Dataframe khác data: ndarray, list, dictionary, hoặc DataFrame.
index: Tên dòng, nếu không có thì bắt đầu bằng 0
columns: Tên cột.
dtype: Loại dữ liệu.
3 Cấu trúc dữ liệu trong Pandas
Các loại dữ liệu trong Pandas
Pandas dtype Python type Usage
object str or mixed Text or mixed numeric and non-numeric values
int64 int Integer numbers
float64 float Floating point numbers
bool bool True/False values
datetime64 NA Date and time values
timedelta[ns] NA Differences between two datetimes
category NA Finite list of text values
3 Cấu trúc dữ liệu trong Pandas

Xem loại dữ liệu của các cột trong dataframe


dataframe.dtypes dataframe.info()

Xem loại dữ liệu của một cột cụ thể trong dataframe


dataframe[column_name].dtypes

Chuyển đổi kiểu dữ liệu trong dataframe


dataframe.astype(‘int’)
dataframe[column_name].astype(‘int’)
4 Hàm cơ bản trong Pandas

1. Tạo Series, DataFrame


2. Tạo DataFrame từ file: .CSV, .TXT, .XLSX, .JSON, SQL
3. Truy xuất, lấy dòng cột trong dataframe.
4. Chèn dòng, chèn cột vào dataframe.
5. Xóa dòng, xóa cột của dataframe.
6. Lưu trữ dataframe thành file .CSV, .XLSX file.
4 Hàm cơ bản trong Pandas
Tạo Series từ dữ liệu có sẵn
Syntax: pandas.Series( data, index, dtype, copy)

Data Syntax Explained


Empty pd.Series() Create an empty series.
Scalar pd.Series(5, index=[0, 1, 2, 3]) Create series with 5 elements.
Numpy data = np.array(['a','b','c','d']) Create a series from ndarray ‘data’.
arrary s = pd.Series(data)
List L = [1, 7, 2] Create a series from a list ‘L’.
s = pd.Series(L)
Dictionary dict = {'a' : 0., 'b' : 1., 'c' : 2.} Create a series from dictionary with
s = pd.Series(dict, dtype = int) key=(a,b,c) and value=(0,1,2)
4 Hàm cơ bản trong Pandas

Ví dụ
4 Hàm cơ bản trong Pandas
Tạo DataFrame
Cú pháp: pandas.DataFrame(data, index, columns, dtype, copy)
Data Syntax Explained
Empty pd.DataFrame() Create an empty dataframe.
Numpy arr = np.array([1,2,3,4,5]) Create an dataframe from ndarry
arrary df = pd.DataFrame(arr) ‘arr’.
List data = [1,2,3,4,5] Create an dataframe from a list
df = pd.DataFrame(data) ‘data’.
List of List data = [['Alex',10],['Bob',12],['Clarke',13]] Create an dataframe from list that
df = pd.DataFrame(data,columns=['Name','Age']) contains 3 another lists.
Dict of Lists data = { 'Name':['Tom', 'Jack', 'Steve', 'Ricky'], Create an dataframe from a
'Age':[28,34,29,42] } dictionary that contains 2 lists.
df = pd.DataFrame(data)
DataFrame pd.DataFrame(df, columns = ['one','three']) Create an dataframe from another
dataframe
4 Hàm cơ bản trong Pandas
Tạo dataframe từ dữ liệu có sẵn
4 Hàm cơ bản trong Pandas
Tạo dataframe từ file .CSV, .TXT file
4 Hàm cơ bản trong Pandas
Tạo dataframe từ file .CSV, .TXT file
Cú pháp: pandas.read_csv(data_path, sep, usecol, skiprows, encoding)
Các tham số:
data_path: the path to imported file.
sep: the sign between columns
usecol : Only comlumns in parameter are imported to dataframe.
skiprows : the amount of row will be not imported to dataframe.
encoding: encoding the text on file.
4 Hàm cơ bản trong Pandas
Import DataFrame from Excel file
Syntax: dataframe.read_excel(‘Excel_file.xlsx')

Import DataFrame from .JSON file


Syntax: dataframe.read_json(‘json_file.json')
4 Hàm cơ bản trong Pandas
Tạo datafram từ SQL

Cú pháp: dataframe.read_sql_query(sql, con, index_col=None)

Ví dụ:

import sqlite3
import pandas as pd
conn = sqlite3.connect('test_database’)
sql_query = pd.read_sql_query (''' SELECT * FROM products ''', conn)
df = pd.DataFrame(sql_query, columns=['product_id','product_name'])
print (df)
4 Hàm cơ bản trong Pandas
Truy xuất dòng
Cú pháp:
dataframe.loc[row_indexer:column_indexer]
dataframe.iloc[row_indexer:column_indexer]

Truy xuất cột


Cú pháp:
dataframe[‘column_name']
4 Hàm cơ bản trong Pandas
Ví dụ:
df.loc[:2,'calories’] # calories là tên cột
df.loc[3:]
df.loc[[1,3,5]]
df.loc['day1’] # day1 là tên dòng.
4 Hàm cơ bản trong Pandas
Chèn dòng vào dataframe
Cú pháp: DataFrame.append(other, ignore_index=False, sort=None)

Chèn cột vào dataframe


Cú pháp: dataframe[new_column_name] = new_column_value
4 Hàm cơ bản trong Pandas
Xóa dòng – Xóa cột
Syntax: dataframe.drop(index=None, columns=None, inplace=False)
4 Hàm cơ bản trong Pandas

Lưu dataframe thành file .CSV, .XLSX file


Cú pháp:
dataframe.to_csv(file_path, encoding, index=False, header=True)

Cú pháp:
dataframe.to_excel(excel_writer, sheet_name='Sheet1', columns=None, header=True, index=True)
4 Hàm cơ bản trong Pandas
Một số phương thức trong dataframe
Attribute Syntax Explained
Index df.index Show the rows name in the dataframe
Columns df. columns Show the columns name in the dataframe
Axes df.axes Show the rows and columns name in the
dataframe
Dtypes df. dtypes Show the data type of each column
Size df. size Show the number of rows and columns
Shape df. shape Show the number of rows and columns
Count df.count(0) #count rows count of the items in the DataFrame. By default, it
df.count(1) # count columns gives the count of the rows
Isna df.isna() Find if there any emptiness of the DataFrame
df.isnull()
4 Hàm cơ bản trong Pandas
Ví dụ
5 Hàm cơ bản xử lý dữ liệu

• Filter – Sort – GroupBy – Concatenate


• Hàm thống kê
• Hàm xử lý văn bản
• Hàm cơ bản xử lý dữ liệu
5 Hàm cơ bản xử lý dữ liệu
Filter
5 Hàm cơ bản xử lý dữ liệu
Sắp xếp
Cú pháp: DataFrame.sort_values(by, axis=0, ascending=True, inplace=False)

Ví dụ
5 Hàm cơ bản xử lý dữ liệu

GroupBy
5 Hàm cơ bản xử lý dữ liệu
Cú pháp:
pandas.groupby(by=None, axis=0, level=None, as_index=True, sort=True)

Một số hàm kết hợp với GroupBy


groupby.count() Hiển thị số lượng nhóm
groupby.first() Hiển thị giá trị đầu tiên của mỗi nhóm
groupby.head([n]) Hiển thị n dòng đầu tiên của mỗi nhóm
groupby.last() Hiển thị giá trị cuối của mỗi nhóm
groupby.max() Tìm giá trị lớn nhất
groupby.min() Tìm giá trị nhỏ nhất
groupby.sum() Tính tổng của từng nhóm
groupby.tail([n]) Hiển thị n dòng cuối của mỗi nhóm
5 Hàm cơ bản xử lý dữ liệu
Ví dụ 1
Ví dụ 2
5 Hàm cơ bản xử lý dữ liệu
Nối 2 dataframe
DataFrame 1

DataFrame 2
5 Hàm cơ bản xử lý dữ liệu

Cú pháp nối 2 dataframe


Syntax:
pandas. concat(objs, axis, join, ignore_index)

objs Dataframe
axis Column = 1, Row = 0
join Inner or outer
ignore_index Reindex if value = False, default is True
5 Hàm cơ bản xử lý dữ liệu
Các hàm thống kê

Standard Deviation
5 Hàm cơ bản xử lý dữ liệu
Function Explained Example
Min Tìm giá trị min df.min()
Max Tìm giá trị max df.max()
Mean Tính giá trị trung bình df.mean()
Median Tính giá trị trung vị df.median()
Count Đếm các giá trị khác null df.count()
Correlation Tìm các giá trị tương quan df.corr()
Standard Deviation Tính độ lệch chuẩn df.std()
Value count Đếm số lượng của các giá trị duy nhất df.value_counts()
Mode Trả về giá trị xuất hiện nhiều nhất df.mode()
Unique Trả về các giá trị duy nhất df.unique()
5 Hàm cơ bản xử lý dữ liệu
Một số hàm xử lý văn bản
5 Hàm cơ bản xử lý dữ liệu
Hàm Ý nghĩa
str.lower() Chuyển chuỗi str thành ký tự thường
str.upper() Chuyển chuỗi str thành ký tự hoa
str.title() Chuyển thành chữ hoa ở đầu mỗi chữ
len(string) Lấy chiều dài của chuỗi string
str.strip() Xóa khoảng trắng ở đầu và cuối chuỗi str
str.split(' ') Tách chuỗi str thành các ký tự. Khoảng tách phụ thuộc vào
ký tự trong ‘ ‘
str.get_dummies() Chuyển đổi dữ liệu category thành biến giả (One-Hot
Encoding)
str.replace(a,b) Thay đổi giá trị a thành b
5 Hàm cơ bản xử lý dữ liệu
Ví dụ: Thay đổi giá trị “F” thành “Nữ”
5 Hàm cơ bản xử lý dữ liệu

Ví dụ 2

Ví dụ 3
5 Hàm cơ bản xử lý dữ liệu
Một số hàm cơ bản xử lý dữ liệu

df.head(n) # Hiển thị n dòng đầu tiên của dataframe


df.tail(n) # Hiển thị n dòng cuối của dataframe
df.shape # Hiển thị số dòng, số cột của dataframe
df.info() # Hiển thị index, loại dữ liệu của dataframe
df.describe() # Hiển thị các giá trị statistics của dataframe
s.value_counts(dropna=False) # Hiển thị giá trị duy nhất và số lượng của cột
5 Hàm cơ bản xử lý dữ liệu

Filter/Groupby

df[df[col] > 0.5] | # Hiển thị những dòng mà cột col > 0.5
df[(df[col] > 0.5) & (df[col] < 0.7)] # Hiển thị những dòng mà col từ 0.5-0.7
df.sort_values(col1) # Sắp xếp dữ liệu cột col1 tăng dần
df.sort_values(col2,ascending=False) # Sắp xếp dữ liệu cột col2 giảm dần
df.groupby(col) # Gom nhóm cột col
df.groupby([col1,col2]) # Gom nhóm 2 cột col1 và col2
5 Hàm cơ bản xử lý dữ liệu
Làm sạch dữ liệu
df.columns = ['a','b','c’] # Đổi tên cột
df.rename(columns = {‘a’:A’}) # Đổi tên cột
df.isnull() # Kiểm tra giá trị rỗng
df.notnull() # Ngược lại hàm df.isnull()
df.dropna() # Xóa các dòng có chứa giá trị rỗng
df.dropna(axis=1) # Xóa các cột có giá trị rỗng
df.drop_duplicates() # Xóa các dòng có giá trị trùng
df.fillna(x) # Điền giá trị x vào vị trí null
s.fillna(s.mean()) # Điền giá trị mean vào vị trí nulll
s.astype(float) # Chuyển kiểu dữ liệu của series thành float
s.replace(1,'one') # Thay đổi giá trị ‘1’ thành 'one'
s.replace([1,3],['one','three’]) # Thay đổi 1 thành 'one’ và 3 thành 'three'
5 Hàm cơ bản xử lý dữ liệu
Ví dụ thay đổi tên cột của dataframe data

You might also like