You are on page 1of 24

Nội dung

1. I/O – Đọc/ghi dữ liệu


2. Làm sạch dữ liệu
3. Trực quan hóa dữ liệu

PHÂN TÍCH DỮ LIỆU 4. Phương thức thao tác dữ liệu


BẰNG PYTHON 5. Gộp dữ liệu
LECTURE 3.2: Pandas – Xử lý dữ liệu 6. Phương thức thao tác trên chuỗi
7. Phương thức thao tác trên Timestamps
8. Tổng kết
2

1. I/O – Đọc/ghi dữ liệu 1. I/O – Đọc/ghi dữ liệu


 Loading a DataFrame from files  Reading data from a CSV file

3 4
1. I/O – Đọc/ghi dữ liệu 1. I/O – Đọc/ghi dữ liệu
 Ví dụ:
 File csv
 Syntax of read_csv:
Syntax: pd.read_csv(filepath_or_buffer, sep=’ ,’ , header=’infer’,
index_col=None, usecols=None, nrows=None, encoding=’utf-8’)
 Kết quả trả về: DataFrame ‘D:/supermarket.csv’

5 6

1. I/O – Đọc/ghi dữ liệu 1. I/O – Đọc/ghi dữ liệu


 Ví dụ:  Ghi dữ liệu:
Syntax: df.to_csv(filepath, sep=’,’ ,columns=None,
header=True, encoding=’utf-8’)
 Ví dụ:

7 8
1. I/O – Đọc/ghi dữ liệu 1. I/O – Đọc/ghi dữ liệu
 File excel  Ví dụ:
 Cài thư viện: pip install xlrd
 Đọc file chỉ có một sheet:
Syntax: pd.read_excel (đường_dẫn_tên_tập_tin,
encoding=`utf-8`, index_col=index_cột, nrows =
số_lượng_dòng…)
• Kết quả trả về: DataFrame

9 10

1. I/O – Đọc/ghi dữ liệu 1. I/O – Đọc/ghi dữ liệu


 File excel  Ví dụ:
 Cài thư viện: pip install openpyxl
 Đọc file chỉ nhiều sheet:
Xlsx=pd.ExcelFile() và pd.read_excel (tên file-xlsx,
“tên sheet”)
 Kết quả trả về: DataFrame

11 12
1. I/O – Đọc/ghi dữ liệu 1. I/O – Đọc/ghi dữ liệu
 Ghi file:  Kiểm tra kiểu dữ liệu các cột
df.to_excel (đường_dẫn_tên_tập_tin, “tên sheet”)
• Ví dụ:

 Quan sát dữ liệu: head, tail

13 14

Nội dung 2. Làm sạch dữ liệu


1. I/O – Đọc/ghi dữ liệu  Dữ liệu ban đầu cần xử lý vì:
2. Làm sạch dữ liệu  Thiếu giá trị
 Có các giá trị ngoại lai (outlier)
3. Trực quan hóa dữ liệu  Có các giá trị không hợp lệ (ví dụ: giá trị âm
4. Phương thức thao tác dữ liệu cho tuổi, cân nặng)
 Chứa giá trị NaN (np.NaN), không có giá trị
5. Gộp dữ liệu (None)
6. Phương thức thao tác trên chuỗi
7. Phương thức thao tác trên Timestamps
8. Tổng kết
15 16
2. Làm sạch dữ liệu 2. Làm sạch dữ liệu
 Xử lý các vấn đề về dữ liệu:  Các phương thức: Thay thế dữ liệu: df.replace
 Thay thế giá trị (giá_trị_cũ, giá_trị_mới)
 Điền bằng dữ liệu phía trên hoặc phía dưới • Ví dụ:
cho những giá trị NaN
 Loại bỏ các field
 Nội suy giá trị

17 18

2. Làm sạch dữ liệu 2. Làm sạch dữ liệu


 Các phương thức: điền bằng dữ liệu phía trên hoặc phía dưới  Các phương thức:
cho những giá trị NaN: df.fillna (method=`ffill`) hoặc df.fillna  Điền bằng dữ liệu khác
(method=`backfill`)
• Ví dụ:
• <df>.fillna(<giá trị>)
• <df>.fillna(value={‘tên column’:<giá trị>,…})

19 20
2. Làm sạch dữ liệu 2. Làm sạch dữ liệu
 Xóa bỏ dòng dữ liệu có chứa NaN: df.dropna (axis=0 hoặc 1)  Xóa bỏ dòng dữ liệu trùng
• Ví dụ • Ví dụ:

21 22

2. Làm sạch dữ liệu Nội dung


 Thực hiện nội suy tuyến tính: df.interpolate() 1. I/O – Đọc/ghi dữ liệu
• Ví dụ:
2. Làm sạch dữ liệu
3. Trực quan hóa dữ liệu
4. Phương thức thao tác dữ liệu
5. Gộp dữ liệu
6. Phương thức thao tác trên chuỗi
7. Phương thức thao tác trên Timestamps
8. Tổng kết
23 24
3. Trực quan hóa dữ liệu 3. Trực quan hóa dữ liệu
 Có thể trực quan hóa dữ liệu bằng biểu đồ:  Ví dụ:

25 26

3. Trực quan hóa dữ liệu 3. Trực quan hóa dữ liệu


 Boxplot  Boxplot
 Là dạng biểu đồ box trên đó mô tả các giá trị  Ví dụ:
của dữ liệu như sau:

 Tạo boxplot của data frame columns:


df.plot.box()
27 28
3. Trực quan hóa dữ liệu 3. Trực quan hóa dữ liệu
 Histogram  Ví dụ:
 Là dạng biểu đồ biểu diễn dạng phân phối tần
suất của một tập dữ liệu liên tục.
 Tạo histogram của data frame columns:
df.plot.hist()

29 30

3. Trực quan hóa dữ liệu 3. Trực quan hóa dữ liệu


 Plot  Ví dụ:
 Là dạng biểu đồ thể hiện các giá trị dưới các
điểm nối với nhau bằng các line
 Tạo plot của data frame columns:
df.plot()

31 32
3. Trực quan hóa dữ liệu 3. Trực quan hóa dữ liệu
 Pie  Ví dụ:
 Là dạng biểu đồ tròn mà mỗi giá trị là một
miếng của biểu đồ tròn đó.
 Tạo pie của data frame columns:
df.plot.pie()

33 34

Nội dung 4. Phương thức thao tác dữ liệu


1. I/O – Đọc/ghi dữ liệu  Lấy dữ liệu cột: dùng tên cột
2. Làm sạch dữ liệu
3. Trực quan hóa dữ liệu
4. Phương thức thao tác dữ liệu
5. Gộp dữ liệu
6. Phương thức thao tác trên chuỗi
7. Phương thức thao tác trên Timestamps
8. Tổng kết
35 36
4. Phương thức thao tác dữ liệu 4. Phương thức thao tác dữ liệu
 Lọc theo điều kiện  Thêm cột mới

 Thêm dòng mới

37 38

4. Phương thức thao tác dữ liệu 4. Phương thức thao tác dữ liệu
 Xóa cột  Nhóm dữ liệu và tổng hợp – Groupby
Group by:

 Xóa dòng

39 40
4. Phương thức thao tác dữ liệu 4. Phương thức thao tác dữ liệu
 Groupby  Common Aggregation functions in Pandas
By groupby we are referring to process involving  mean(): compute mean of groups
one or more of the following steps:  sum()
 Splitting the data into groups based on some  size()
criteria  count()
 Applying a function to each group  std()
independently  var()
 Combining the results into a data structure  …

41 42

4. Phương thức thao tác dữ liệu 4. Phương thức thao tác dữ liệu
 Groupby  Groupby

cha có index. reset index lp tc ra index

43 44
4. Phương thức thao tác dữ liệu 4. Phương thức thao tác dữ liệu
 Groupby  Pivot table

va tính trung bình, va tính tng

45 46

4. Phương thức thao tác dữ liệu 4. Phương thức thao tác dữ liệu
 Pivot table: Analysis, statistics, reports and summary  Pivot table
Syntax: pandas.pivot_table(data, values=None, index = None,
Rows -> Index=[col_1, col_2,…] columns=None, aggfunc=‘name of function’, fill_value=None,
margins=False, dropna=True, margins_name=‘All’, sort=True)

Cols -> Columns=[col_1, col_2,…]


Dataset
Values -> aggfunc=‘tên hàm 1, 2,…’

Filters

47 48
4. Phương thức thao tác dữ liệu 4. Phương thức thao tác dữ liệu

49 50

4. Phương thức thao tác dữ liệu 4. Phương thức thao tác dữ liệu

xem th mi loi công vic thì tng tin


lng tr bao nhiêu. Bng không có ct
ch

value tính

51 52
4. Phương thức thao tác dữ liệu 4. Phương thức thao tác dữ liệu

53 54

4. Phương thức thao tác dữ liệu 4. Phương thức thao tác dữ liệu

55 56
4. Phương thức thao tác dữ liệu Nội dung
 Apply 1. I/O – Đọc/ghi dữ liệu

Duyt theo tng dòng d liu: step by step 2. Làm sạch dữ liệu
3. Trực quan hóa dữ liệu
4. Phương thức thao tác dữ liệu (pivot)
5. Gộp dữ liệu
6. Phương thức thao tác trên chuỗi
7. Phương thức thao tác trên Timestamps
8. Tổng kết
57 58

5. Gộp dữ liệu 5. Gộp dữ liệu


 Dùng pd.concat([df1,df2,…])  Dùng pd.concat([df1,df2,…])

59 60
5. Gộp dữ liệu 5. Gộp dữ liệu
 Nối dữ liệu: df1._append (df2)  Merge: df.merge (df1,df2, how=‘name of join type’)
ly ht 2 cái
ly cái chung
df1

df2

newdf
ly bên trái là chính ly bên phi là chính

61 62

5. Gộp dữ liệu 5. Gộp dữ liệu


 Merge: df.merge (df1,df2, how=‘name of join type’)  Merge: df.merge (df1,df2, how=‘name of join type’)

df1 df2

inner: ra cái chung

63 64
5. Gộp dữ liệu 5. Gộp dữ liệu
 Merge: df.merge (df1,df2, how=‘name of join type’)  Merge: df.merge (df1,df2, how=‘name of join type’)

65 66

5. Gộp dữ liệu 5. Gộp dữ liệu


 Merge: df.merge (df1,df2, how=‘name of join type’)  Kết dữ liệu: df.merge (df1,df2,how=‘inner’)

67 68
Nội dung 6. Phương thức thao tác trên chuỗi
1. I/O – Đọc/ghi dữ liệu  Tách dữ liệu chuỗi thành list:
2. Làm sạch dữ liệu df[“tên_cột”].str.split(“ký_tự_tách”)
 Ví dụ:
3. Trực quan hóa dữ liệu
4. Phương thức thao tác dữ liệu
5. Gộp dữ liệu
6. Phương thức thao tác trên chuỗi
7. Phương thức thao tác trên Timestamps
8. Tổng kết
69 70

6. Phương thức thao tác trên chuỗi 6. Phương thức thao tác trên chuỗi
 Tìm chuỗi có nằm trong chuỗi hay không:  Thay chuỗi bằng chuỗi:
df[“tên_cột”].str.contains(“chuỗi”) df[“tên_cột”].str.replace(“chuỗi cũ”, “chuỗi mới”)
 Ví dụ:  Ví dụ:

71 72
6. Phương thức thao tác trên chuỗi 6. Phương thức thao tác trên chuỗi
 Regular Expression  Regular Expression
 RegEx là chuỗi ký tự đặc biệt để so khớp hoặc  Một số ký hiệu:
so sánh chuỗi thỏa điều kiện nào đó. • Hoặc :|
 Ví dụ: • Nhóm : ()
- ^a…s$ • Số lượng ký tự: *,{m,n},…
- [0-9]{2,4} • Ký tự đánh dấu :^ $
 Để sử dụng thư viện RegEx: import re • Ký tự :\d,…
 Ví dụ:
• “cat|mat” ~ “cat” or “mat”
• “gr(e|a)y” ~ “grey” or “gray”

73 74

6. Phương thức thao tác trên chuỗi 6. Phương thức thao tác trên chuỗi
 Tìm chuỗi đầu tiên thỏa regular expression (RE):  Regular Expression
df[“tên_cột”].str.extract(“RE”)
 Ví dụ:

75 76
6. Phương thức thao tác trên chuỗi 6. Phương thức thao tác trên chuỗi
 Regular Expression  Regular Expression

77 78

6. Phương thức thao tác trên chuỗi 6. Phương thức thao tác trên chuỗi
 Regular Expression  Regular Expression
 Ký tự: :\d\D\w\w+,…
 Ví dụ:
• \d : ký số [0-9]
• \D : không phải ký tự số
• \w : ký tự [a-zA-Z0-9]
• \w+ : 1 hoặc nhiều ký tự [a-zA-Z0-9]

79 80
6. Phương thức thao tác trên chuỗi Nội dung
 Regular Expression 1. I/O – Đọc/ghi dữ liệu
2. Làm sạch dữ liệu
3. Trực quan hóa dữ liệu
4. Phương thức thao tác dữ liệu
5. Gộp dữ liệu
6. Phương thức thao tác trên chuỗi
7. Phương thức thao tác trên Timestamps
8. Tổng kết
81 82

7. Phương thức thao trên Timestamps 7. Phương thức thao trên Timestamps
 Kiểu dữ liệu Timestamps  Chuyển Timestamps sang dữ liệu DateTime của Python:
 Kiểu dữ liệu chung: datetime64[ns] pd.to_datetime (tên_cột_timestamp, unit=‘s’)
 Chuyển dữ liệu int64 timestamp sang dữ liệu  Ví dụ:
DateTime của Python

83 84
7. Phương thức thao trên Timestamps 7. Phương thức thao trên Timestamps
 Chuyển Timestamps sang dữ liệu DateTime của Python:  Chọn dòng dựa trên TimestampVí dụ:
pd.to_datetime (tên_cột_timestamp, unit=‘s’)
 Ví dụ:

85 86

7. Phương thức thao trên Timestamps Nội dung


 Sắp xếp dữ liệu theo trật tự thời gian: 1. I/O – Đọc/ghi dữ liệu
df.sort_values(by=‘tên_cột’,ascending=True) 2. Làm sạch dữ liệu
 Ví dụ:
3. Trực quan hóa dữ liệu
4. Phương thức thao tác dữ liệu (pivot)
5. Gộp dữ liệu
6. Phương thức thao tác trên chuỗi
7. Phương thức thao tác trên Timestamps
8. Tổng kết
87 88
8. Tổng kết 8. Tổng kết
 Data input/Output  Làm sạch dữ liệu
 pd.read_csv()  df.replace()
 df.to_csv()  df.fillna()
 pd.read_excel()  df.dropna()
 df.to_excel()  df.interpolate()
 Phân tích/thống kê  Trực quan hóa
 describe()-> sum(), count(), min(), max(), std(),  df.plot.bar()
mode(), corr(), any(), all(), mean(), median()  df.plot.box()
 df.plot.hist()
 df.plot.pie()

89 90

8. Tổng kết 8. Tổng kết


 Chuyển đổi dữ liệu  Xử lý chuỗi
 Lấy dữ liệu theo cột  str.split()
 Lọc theo điều kiện  str.contains()
 Thêm cột/dòng mới  str.replace()
 Xóa cột/dòng  str.extract()
 Nhóm dữ liệu: df.groupby()  Time-stamps
 Pivot table: pd.pivot_table()  pd.to_datetime()
 Gộp dữ liệu  Chọn dòng thỏa điều kiện
 pd.concat()  df.sort_values()
 df1.append(df2)
 pd.merge()
91 92
8. Tổng kết

THE END
THANK YOU !

93

You might also like