Với Python, có thể nói Pandas - một trong những thư viện thiết yếu được sử dụng rất rộng rãi trong Data Science.. Pandas sẽ giúp làm quen với các dữ liệu của mình bằng cách sắp xếp, phân
Trang 1
CONG HOA XA HỘI CHỦ NGHĨA VIỆT NAM Độc lập - Tự do - Hạnh phúc
ĐẠI HỌC QUỐC GIA THÀNH PHỐ HỒ CHÍ MINH
TRƯỜNG ĐẠI HỌC KINH TẾ - LUẬT
Sinh viên thực hiện :
- Pham Nguyén Hai Anh - K224161806
- Tran Ng6 Gia Linh - K224161823
- Nguyén Ngoc Phuong Vy - K224161844
- Tran Ngoc Kim Yén - K224161847
Trang 2
MUC LUC
LOIM QÂÂU
2.1 Khái niệm -.- S4 2.21111142141114 211112412204 01104010401 1 T04 0104 100101 11000101 04 4110 04 0104 11010 LH Hi v 8
3.1 Kiêm tra missing data 11 3.2 Xử lý missing data 14
THÍ CÁCH SỈ (Ỉ[HHĐ- Sá ọSn HA HH HH HH TH TH KH TH HA 4 08 40.0540 E40 4.18 4.18 084 TH 4.14 0884.1000884 17
1 Cài đặt Pandas 17 1.1 Cài đặt thông qua Anaconda 17 1.2 Cài đặt thông qua trình quản lý package của python là pip: 17
2 Sử dụng Pandas 18 2.1 Khai báo thư viện 18 2.2 Dictionary 18 r6 ha 19
2.6 Thao tác với tệp HTML 23
TV, Ug AU gsesessescsssssssesssssesusssessessessesssssanssussncsssssesusssssssnsssssnesssssesscssesssnsssssnessssssusnes 24
1.Ứ ng dị ng trong vỆ c tra đf u thông tn: 24
2 Ứng dụng trong việc hỗ trợ tính toán, thống kê số liệu: 24
Trang 3có ý nghĩa to lớn giúp nhân loại chinh phục mọi tầm cao của sự tiến bộ Đặc biệt là với sự phát triển mạnh mẽ của các công nghệ phần mềm nên việc ứng dụng tin học vào đời sống thực tiễn đang rất phát triển và được phổ biến rộng rãi Tất cả các ngành như y tế, giáo dục, thương mại điện tử, đều được tin học hóa một cách hữu dụng và rộng rãi, nó giúp ngành quản lý trở nên có hiệu quả, giảm được tối đa việc lãng phí thời gian và công sức để hoàn thành công việc Vì vậy có thể thấy được rằng, công nghệ dường như đã trở thành một phần không thể thiếu trong mọi hoạt động xã hội và đời sống của con người Để có thể tìm hiểu về cách công nghệ ra đời và hoạt động, việc lập trình điều mà ta
sẽ phải tìm đến.Python được biết đến như là một ngôn ngữ lập trình được sử dụng đông đảo bởi các lập trình viên cũng như sự đa dạng về lĩnh vực mà nó được áp dụng Trong Python có rất nhiều thư viện, vốn
là một công cụ đắc lực hỗ trợ lập trình viên trong quá trình tìm hiểu, học lập trình và thực chiến trong các dự án thực tế Với Python, có thể nói Pandas - một trong những thư viện thiết yếu được sử dụng rất rộng rãi trong Data Science Pandas sẽ giúp làm quen với các dữ liệu của
mình bằng cách sắp xếp, phân tích và biến đổi chúng, cụ thể hơn là có
thể làm sạch dữ liệu bằng cách thực hiện những việc như xóa các giá trị bị thiếu và lọc các hàng và cột theo một số tiêu chí; trực quan hóa
dữ liệu với sự trợ giúp từ Matplotlib, biểu đồ thanh, đường kẻ, biểu đồ; lưu trữ các dữ liệu đã được làm sạch, chuyển đổi chúng thành CSV, tệp hoặc các cơ sở dữ liệu Chính vì vậy nhóm chọn Pandas để tìm hiểu trong bài báo cáo thư viện với mong muốn tích lũy kiến thức về thư
moa
viện “lão làng”, “đầy tên tuổi” trong Python
Trang 4I Giới thiệu về Pandas
- Pandas là một thư viện mã nguồn mở được viết bằng ngôn ngữ lập trình Python, sử dụng để thực hiện các phân tích và xử lý dữ liệu
Là một thư viện rất mạnh và phổ biến trong cộng đồng phân tích dữ liệu Python và có thể sử dụng trong nhiều lĩnh vực
- Pandas đã được Web McKinney xây dựng nên vào năm 2008, nguyên do là ông đã cảm thấy quá thất vọng khi làm việc với R
- Pandas được xây dựng dựa trên các thuộc tính của NumPy và cung cấp các tính năng mà trên NumPy không có, và tất nhiên là pandas cung cấp cấu trúc dữ liệu với ưu điểm nhanh và dễ sử dụng hơn, lấp đầy khoảng cách giữa hai ngôn ngữ thống kê là Python đối với
R
IL Dữ liệu sử dụng trong Pandas
1 Series
- Là một dạng cấu trúc dữ liệu tương tự mảng 1 chiều
- Được diễn tả theo chiều dọc
- Điều khác biệt giữa mảng NumPy với một series là series có thể
có các nhãn trục, nghĩa là nó có thể được lập chỉ mục bởi một nhãn, thay vì chỉ một vị trí số
-Chứa nhiều kiểu dữ liệu khác nhau như số (integer), chuỗi (string), kiểu boolean (True, false), kiểu dữ liệu NaN
- Có thể được xem như là một cấu trúc dữ liệu với hai mảng: một lưu chỉ mục, cái còn lại lưu dữ liệu
Trang 5Series index values
1.1 Truy xuất dữ liệu trong Series
- Pandas sử dụng các tên hoặc số chỉ mục cho phép truy xuất dữ liệu nhanh chóng
- Vi du về truy xuất dữ liệu trong series:
Trang 81.5 Cac ham co ban trong Series
Trang 9
kiểm tra xem dữ liệu có
3iempty empty không
trả về chiều của dữ liệu ,
4ndim theo định nghĩa nó là 1
trả về số lượng phần tử có
5\size trong dữ liệu series đó
Trang 10array([ 10, ], dtype=int64) trả về danh sách phản tử
- Data frame là kiểu dữ liệu 2 chiều với nhiều cột có thể chứa nhiều kiểu dữ liệu khác nhau:
¢ Dictionary cua cac mang 1 chiéu
Trang 11eThu vién numpy 2 chiéu ( Structure Array hoac module record
+ Nhập thông tin dưới dạng list gồm index và value
(>>> import pandas as pd
|
- Bước 1: Sử dụng lệnh import csv : chèn file csv
- Bước 2: with open('Giants.csv', mode ='r')as file: đọc file csv
Trang 12- Bước 3: csvFile = csv.reader(file) : in ra dữ liệu của file csv
Load from text file (i.e., cvs)
| afl = pd.read csv(file name, [index col=], [header=], [skiprows=])
3 Missing data (dir liéu rong):
Tạo một dataframe tồn tại gia tri NaN
Trang 136.560588
-368087 15.188653 NaN 27.841637 =) PT =)
3.1 Kiém tra missing data
Dùng hương thức isnull() và notnull() để kiểm tra phần tử là NaN hay không là NaN tương ứng
Trang 15A 2
False False True True
False False False True
True False True False
True True False True
True False True False
>>> print “Hang co chua phan tu null”
- Kiểm tra dữ liệu rỗng theo cột
>>> print “Cot co chua phan tu null”
Trang 16e axis: nhan gia tri mac dinh la 0 -‘index’, 1-‘columns’
e« how: ‘any’ sé drop axis dang xét néu cé bat gì phan ttr NaN nao ton tai, ‘all’ sẽ drop axis nếu toàn bộ phần tử đang xét nhận giá tri NaN
new d£ = d£.dropna (how= all )
foo bar baz
Trang 17“Drop cac hang có chứa phần tử là NaN trong series SS”
Drop các hàng có chứa phần tử là NaN trong series SS
Trang 191.1 Cài đặt thông qua Anaconda
Cách đơn giản nhất để cài đặt Pandas được đề xuất trên website chính thức của Pandas là cài đặt qua Anaconda Sau khi chạy chương trình cài đặt, sử dụng dòng lệnh sau để cài đặt pandas người dùng sẽ có quyền truy cập vào Pandas:
Hoặc cài đặt một phiên bản nào đó của Pandas:
1.2 Cài đặt thông qua trình quản lý package của python là pip:
Cai dat Pandas bang pip tr6n command prompt/terminal của
hệ điều hành Windows/Linux/MacOS:
- Sau khi cài đặt pip, tiến hành cài đặt thư viện Pandas thông qua lệnh sau:
18
Trang 20- Có thể kiểm tra phiên bản Pandas đang được sử dụng bằng cach:
python -c “import pandas; (pandas version )"
Chu y: Cac phién ban Python hé tro Pandas: 3.8, 3.9, 3.10,
2.2.1 Tạo DataFrame từ dictionary:
Trang 21name age gender
Trang 22[ [
Trang 23pandas
[ [
[ [
2.4.1 Sử dụng Series thao tác với array:
Một 'Series' trong Pandas tương ứng với một array một chiều trong NumPy Chúng ta có thể tạo một “'Series' bằng cách truyền một danh sách vào hàm “Series()' của Pandas:
pandas ere!
1)
22
Trang 2423
Tương tự như khi dùng Series ở trên,
Trong đó, filename.csv là đường dẫn tới file CSV cần đọc
Tip: sử dụng to_string() để hiển thị ra màn hình toàn bộ
DataFrame
2.4.3.2 Xem thông tin của file CSV
Nếu bạn có 1 DataFrame với nhiều Series, Pandas sẽ chỉ trả về
5 cột đầu tiên hoặc 5 cột cuối cùng
Thay thế, lọc, tính toán và ghép nối các cột hoặc dòng đữ liệu
Ví dụ, để lọc các dòng có giá trị trong cột “age' lớn hơn hoặc
bằng 18:
Đế tính toán giá trị trung bình của cột “score':
Trang 25
mean score = df[ ] mean ()
Để ghép nối hai cét ‘firstname’ va “lastname' thành một cột mới ‘fullname’:
2.4.3.4 Ghi file CSV:
Sau khi xử lý dữ liệu ta có thể sử dụng phương thức “to_csv()'
để ghi dữ liệu vào file csv mới:
2.5 Định dạng chuỗi thời gian
Trong Pandas, định dạng chuỗi thời gian được xử lý bởi đối tượng 'Datetimelndex' bằng cách sử dụng hàm “pd.to_datetime()'
và truyền chuỗi thời gian cần chuyển đổi là đối số Phương thức
này có thể chuyển đổi một chuỗi hoặc một mảng các chuỗi thành một “Datetimelndex' hoặc một “Series' chứa các giá trị thời gian Ví
Trang 26time series = pd.to datetime (times)
Kết quả cũng là một 'datetime64[ns]'
2.6 Thao tác với tệp HTML
Có thể đọc và xử lý các tệp HTML bằng cách sử dụng hàm 'read_html()', hàm này tự động phát hiện và trích xuất bảng dữ liệu từ các đoạn mã HTML trong tệp
IV Ứng dụng:
1 Ứng dụng trong việc tra cứu thông tin:
Sau đây là một đoạn mã Python cho phép người dùng nhập thông tin của mình và đặt vé máy bay dựa trên một tệp CSV chứa thông tin chuyến bay
Trang 27Toe amet Hãng Điểm đi Điểm đến Giá vé Hạng
9 01/01/2823 Bamboo Airways Sài Gòn-Đà Lat 1941000 H
Tổng: 8093000.0 déng
Xin cảm ơn quý khách đã sử dụng dịch vụ của chúng tôi
2 Ứng dụng trong việc hỗ trợ tính toán, thống kê số liệu:
„Giả s sử ‘ta có dữ liệu (được trích từ tệp doanh thu.csv') như sau:
< Be O Sear ¿4 sa O© ã © : OUcđ@vwpnsowg A FMB scr @
Doan ma sau day str dung thu vién Pandas để doc mot file CSV chứa dữ liệu về doanh thu vào một DataFrame Từ đó tính tổng doanh thu của tất cả các sản phẩm, doanh thu trung bình, và tìm ra sản phẩm
có doanh thu cao nhất và thấp nhất cùng với số tiền tương ứng:
26
Trang 28san_pham_thap_nhat['Te yi ĐC ,„ san pham thap nhat[
Bao cao doanh thu
ng doanh thu
© tieš,Columa 1 Tab Sie 4 Python
¿4u ÐO œ€© :'OŒBH€Ệ ^ #0 si
Kết quả báo cáo được hiến thị như sau:
Selection Find View Goto
34°C Search
Nắng tải rác ¡ 4 sec
File Edit Tools
Froject Preferences Help
Tong doanh thu:
Doanh thu trung binh: Ũ
San pham ban chay nhat: San pham C voi doanh thu:
San pham ban cham nhat: San pham A voi doanh thu:
Tab Sine: & Python
Trang 29
nhThuThang cay Eid cé-ThuvientrengPymonpotx + ah @ — ag x
A ce) ows Wop Bx % BI Boome 5 cadee [Zcas a A
= Bm Q Search Yiu ope: OU€cđ@vnsog A FAB yen O
Đoạn mã minh hoa:
jedo Tools Project Preferences Help
St Be Seare Vou OBeCV OUCOCW HAO * ve yrme
*figsize=(): điều chỉnh kích thước của biểu đồ
*autopct: làm tròn 2 chữ số thập phân
Biểu đồ nhận được:
28
Trang 30
€ 88 = ven] @ localhost5 teboots/tJntitleel9ipyni ®#8@@bœQœ $ + =
a ile Edit View Insert Cell Kernel Widgets Help Notebook saved Trusted Python 3 (ipyke + 93% ớ KR 4 & PRun BC DW Code - Bãi
Giả sử, ta có dữ liệu về doanh thu theo tháng (được trích từ tệp
‘DoanhThuThang’) nhu sau:
29
Trang 31WPS Office DoanhThuThang.csv : Tr
= Menu E [In 32] =) [a S v ca Insert F
ta 3% cut “h Calibri 11 -NA
Paste ~ {LÌ copy ~ fomat B J U-~ A HH1-E2- Q- A-«
E tines Columnt Tab Sizer
30
Trang 32*title: đặt tên cho biểu đồ
© < Jupyter Untitled9 Last checkpoint: 11/16/2022 (unsaved changes) e Logout
File Edit View insert Cel Kerne Widgets Help = | Python 3 (ipykernel) ©
© B8 + * © BR + bRna BC MH Code =
@ 0ut{29}: cAxesSubplot:title={'center":'Bieu do doanh thu san pham theo thang'}, xÌabel='Thang'›
© Bieu do doanh thu san pham theo thang
Trang 33Giả sử, ta có dữ liệu về doanh thu trong nam tháng (được trích từ tệp 'DoanhThuTheoQuy') như sau (Giống ví dụ biểu đồ cột ghép trên)
32
Trang 34SanPham Quy1 Quy2 Quy3 Quy4
A 1000 900 1200 1500
B 1200 1500 1300 1000
c 800 1000 900 700
D 900 500 750 1200
Khi đó ta có thể vẽ biểu đồ đường
'inplace=True' : tránh tạo bản sao df mới, đoạn mã xử lý dữ liệu ngay trên bản gốc để không làm tốn nhiều bộ nhớ
Trang 35SanPham Quy1 Quy2 Quy3 Quy4
Trang 36
LOI KET Thư viện pandas của Python là một công cụ mạnh mẽ để xử lý dữ liệu Nó cung cấp cho người dùng các cấu trúc dữ liệu linh hoạt như Series và DataFrame, cho phép bạn dễ dàng thực hiện các thao tác phân tích dữ liệu như truy xuất, lọc, sắp xếp, tính toán thống kê, và tổng hợp dữ liệu.Pandas cũng hỗ trợ việc đọc và ghi các định dạng dữ liệu phổ biến như CSV, Excel, SQL và HDFB5
Nó còn có khả năng kết hợp và trộn dữ liệu từ nhiều nguồn khác nhau.Tuy nhiên, pandas không phải là công cụ hoàn hảo cho tất cả các tình huống Khi làm việc với các tập dữ liệu cực kỳ lớn, pandas có thể gặp phải vấn đề hiệu suất, do đó cần phải tối ưu hóa mã để tăng tốc độ
xử lý
Tổng kết lại, thư viện pandas của Python là một công cụ mạnh mẽ
và linh hoạt cho việc xử lý và phân tích dữ liệu Nó cung cấp cho người dùng các cấu trúc dữ liệu đa dạng và tính năng phân tích mạnh mẽ, cho phép người dùng thực hiện các thao tác phúc tạp trên dữ liệu với
độ chính xác cao và tốc độ xử lý nhanh Tuy nhiên, khi làm việc với các tập dữ liệu lớn, pandas có thể gặp phải vấn đề hiệu suất và cần phải tối
ưu hóa mã để tăng tốc độ xử lý
Tóm lại, pandas là một công cụ rất hữu ích và phổ biến trong việc
xử lý dữ liệu và được sử dụng rộng rãi trong nhiều lĩnh vực khác nhau
35