Python là một ngôn ngữ lập trình được sử dụng rộng rãi trong các ứng dụng web, phát triển phần mềm, khoa học dữ liệu và máy học ML.. Python giúp cải thiện năng suất làm việc của các nhà
Trang 1BỘ GIÁO DỤC & ĐÀO TẠO HỌC VIỆN CHÍNH SÁCH SÁCH VÀ PHÁT TRIỂN
KHOA KINH TẾ QUỐC TẾ
***
-TIỂU LUẬN Môn: Dữ liệu lớn trong kinh tế và kinh doanh
Đề tài: Ứng dụng phân tích điểm thi đại học bằng ngôn ngữ Python
Trang 2I – Giới thiệu về Python
1 Python là gì ?
Python là một ngôn ngữ lập trình được sử dụng rộng rãi trong các ứng dụng web, phát triển phần mềm, khoa học dữ liệu và máy học (ML) Các nhà phát triển sử dụng Python vì nó hiệu quả, dễ học và có thể chạy trên nhiều nền tảng khác nhau Phần mềm Python được tải xuống miễn phí, tích hợp tốt với tất cả các loại hệ thống và tăng tốc độ phát triển
2 Đặc điểm
· Python là một ngôn ngữ thông dịch
Python là một ngôn ngữ thông dịch, điều này nghĩa là ngôn ngữ này trực tiếp chạy từng dòng mã Nếu có lỗi trong mã chương trình, nó sẽ ngừng chạy Do đó,lập trình viên có thể nhanh chóng tìm ra lỗi trong đoạn mã
· Python là một ngôn ngữ dễ sử dụng
Python sử dụng từ ngữ giống trong tiếng Anh Không giống như các ngôn ngữ lập trình khác, Python không sử dụng dấu ngoặc ôm Thay vào đó, ngôn ngữ này
sử dụng thụt đầu dòng
· Python là một ngôn ngữ linh hoạt
Các lập trình viên không cần phải khai báo loại biến khi viết mã bởi vì Python sẽxác định chúng vào thời điểm chạy Vì vậy, bạn có thể viết các chương trình Python một cách nhanh chóng hơn
· Python là một ngôn ngữ cấp cao
Python gần gũi với ngôn ngữ con người hơn các ngôn ngữ lập trình khác Do đó,các lập trình viên không cần phải lo lắng về những chức năng cơ bản của nó nhưkiến trúc và quản lý bộ nhớ
· Python là một ngôn ngữ lập trình hướng đối tượng
Python coi mọi thứ đều là đối tượng, nhưng ngôn ngữ này cũng hỗ trợ các
phương thức lập trình khác như lập trình hàm và lập trình cấu trúc
3 Lợi ích của Python:
1 Các nhà phát triển có thể dễ dàng đọc và hiểu một chương trình Python vì ngôn ngữ này có cú pháp cơ bản giống tiếng Anh
Trang 32 Python giúp cải thiện năng suất làm việc của các nhà phát triển vì so với những ngôn ngữ khác, họ có thể sử dụng ít dòng mã hơn để viết một chương trình Python.
3 Python có một thư viện tiêu chuẩn lớn, chứa nhiều dòng mã có thể tái sử dụng cho hầu hết mọi tác vụ Nhờ đó, các nhà phát triển sẽ không cần phải viết
6 Trên Internet có rất nhiều tài nguyên hữu ích nếu bạn muốn học Python Ví dụ: bạn có thể dễ dàng tìm thấy video, chỉ dẫn, tài liệu và hướng dẫn dành cho nhà phát triển
7 Python có thể được sử dụng trên nhiều hệ điều hành máy tính khác nhau, chẳng hạn như Windows, macOS, Linux và Unix
4 Python có lịch sử như thế nào?
Guido Van Rossum, một lập trình viên máy tính ở Hà Lan, đã tạo ra Python Ông bắt đầu phát triển ngôn ngữ này vào năm 1989 tại Centrum Wiskunde & Informatica (CWI), ban đầu chỉ là một dự án tiêu khiển để giúp ông giết thời gian trong dịp Giáng sinh Tên gọi của ngôn ngữ này được lấy cảm hứng từ chương trình truyền hình Monty Python's Flying Circus của đài BBC vì Guido Van Rossum là một “fan cứng” của chương trình này
Lịch sử các phiên bản Python:
· Guido Van Rossum cho ra mắt phiên bản đầu tiên của ngôn ngữ Python (phiên bản 0.9.0) vào năm 1991 Ngôn ngữ này đã bao gồm các tính năng hữu ích như một số kiểu dữ liệu và hàm để xử lý lỗi
· Python 1.0 đã được ra mắt vào năm 1994 với các hàm mới để dễ dàng xử
lý danh sách dữ liệu, chẳng hạn như ánh xạ, lọc và lược bỏ
· Python 2.0 đã được ra mắt vào ngày 16 tháng 10 năm 2000, với các tính năng hữu ích mới cho lập trình viên, chẳng hạn như hỗ trợ ký tự Unicode và cách xử lý chi tiết một danh sách nhanh chóng hơn
· Python 3.0 đã được ra mắt vào ngày 3 tháng 12 năm 2008 Phiên bản này bao gồm các tính năng như hàm in và hỗ trợ nhiều hơn cho việc phân chia số và
xử lý lỗi
5 Ứng dụng của Python
5.1 Ứng dụng Python phát triển trang web
Trang 4Python là một lựa chọn tuyệt vời để phát triển web nhờ trên Python có nhiềuframework web, chẳng hạn như Django, Pyramid và Flask Các framework này
đã được sử dụng để tạo các trang web và dịch vụ như Spotify, Reddit vàMozilla
Ngoài ra, còn có các thư viện và mô-đun mở rộng đi kèm với các frameworkPython, nhờ vậy các chức năng truy cập cơ sở dữ liệu, quản lý nội dung và dataauthorisation đều có thể thực hiện được và dễ dàng Với tính linh hoạt củaPython, không có gì ngạc nhiên khi Python ngày được sử dụng rộng rãi trongphát triển web
Phát triển web bao gồm những hàm backend phức tạp mà các trang web thực hiện để hiển thị thông tin cho người dùng
Ví dụ: các trang web phải tương tác với cơ sở dữ liệu, giao tiếp với các trang web khác và bảo vệ dữ liệu khi truyền qua mạng
Python hữu ích trong việc lập trình mã phía máy chủ bởi vì ngôn ngữ này cung cấp nhiều thư viện bao gồm mã viết sẵn cho các hàm backend phức tạp Các nhàphát triển cũng sử dụng một loạt các khung Python cung cấp tất cả những công
cụ cần thiết để xây dựng ứng dụng web một cách nhanh chóng và dễ dàng hơn
Ví dụ: các nhà phát triển có thể tạo ứng dụng web khung trong nháy mắt bởi vì
họ không cần phải lập trình nó từ đầu Sau đó, họ có thể kiểm tra ứng dụng web này bằng cách sử dụng các công cụ kiểm thử của khung, mà không cần phụ thuộc vào những công cụ kiểm thử bên ngoài
5.2 Tự động hóa bằng các tập lệnh Python:
Ngôn ngữ tập lệnh là một ngôn ngữ lập trình tự động hóa các tác vụ mà thường được con người thực hiện Các lập trình viên thường xuyên sử dụng các tập lệnhPython để tự động hóa nhiều tác vụ hàng ngày như:
Trang 5· Đổi tên một số lượng lớn tệp cùng lúc
· Chuyển đổi một tệp sang một loại tệp khác
· Loại bỏ các từ trùng lặp trong tệp văn bản
· Thực hiện các phép tính toán cơ bản
· Gửi email
· Tải xuống nội dung
· Thực hiện phân tích nhật ký cơ bản
· Tìm kiếm lỗi trong nhiều tệp
5.3 Phân tích dữ liệu và máy học:
Lập trình Python được sử dụng khá phổ biến trong phân tích dữ liệu, một lĩnhvực đang phát triển nhanh chóng Như một nhu cầu tất yếu của việc ứng dụngtin học hóa và thời đại công nghệ số là chúng ta đang có nhiều dữ liệu hơn baogiờ hết, nên rất cần có những nhân sự có thể thu thập, xử lý và tổ chức thông tin.Python là sự lựa chọn hợp lý cho khoa học dữ liệu và phân tích dữ liệu Ngônngữ này dễ học, linh hoạt và được hỗ trợ nhiều thư viện cho phép thực hiện cácthao tác xử lý, phân tích dữ liệu một cách nhanh chóng Đặc biệt khi làm việcvới một lượng lớn dữ liệu, Python càng phát huy hiệu quả hơn
Khoa học dữ liệu trích xuất thông tin quý giá từ dữ liệu và máy học (ML) dạy máy tính tự động học hỏi từ dữ liệu và đưa ra các dự đoán chính xác Dữ liệu sử dụng Python cho các tác vụ khoa học dữ liệu sau:
· Sửa và loại bỏ dữ liệu không chính xác, hay còn được gọi là làm sạch dữ liệu
Trang 6· Trích xuất và chọn lọc các đặc điểm đa dạng của dữ liệu
· Ghi nhãn dữ liệu gán tên có ý nghĩa cho dữ liệu
· Tìm các số liệu thống kê khác nhau từ dữ liệu
· Trực quan hóa dữ liệu bằng cách sử dụng các biểu đồ và đồ thị, chẳng hạn như biểu đồ đường, biểu đồ cột, biểu đồ tần suất và biểu đồ tròn
Các nhà khoa học dữ liệu sử dụng những thư viện ML của Python để đào tạo các
mô hình ML và xây dựng các công cụ phân loại giúp phân loại dữ liệu một cách chính xác Các chuyên gia từ nhiều lĩnh vực sử dụng những công cụ phân loại dựa trên Python để thực hiện các tác vụ phân loại, chẳng hạn như phân loại hình ảnh, văn bản cũng như lưu lượng truy cập mạng, nhận dạng giọng nói và nhận diện khuôn mặt Các nhà khoa học dữ liệu cũng sử dụng Python cho deep
learning, một kỹ thuật ML nâng cao
Hai trong số những game nổi tiếng được ứng dụng code Python là PyGame vàPySoy Ngoài ra, một số tựa game khác đã sử dụng ngôn ngữ lập trình nền tảng
là Python để xây dựng là Battlefield 2, Vega Strike hay Frest on Fire Ngườidùng còn có thể sử dụng Python để lập trình các hành động, tác vụ hoặc tạo câyhội thoại, dùng ở game engine chính
5.5 Phát triển ngôn ngữ lập trình
Trang 7Với thiết kế đơn giản, tinh tế và cú pháp dễ đọc – dễ hiểu, Python đã truyền cảmhứng cho việc tạo ra các ngôn ngữ lập trình mới Các ngôn ngữ như Cobra,CoffeeScript và Go đều sử dụng cú pháp tương tự như Python.
Điều đó có nghĩa là Python là một ngôn ngữ khởi đầu hữu ích Vì vậy, nếu bạnmới bắt đầu học lập trình, việc hiểu Python có thể giúp bạn mở rộng sang cáclĩnh vực khác dễ dàng hơn
II.PHÂN TÍCH ĐIỂM THI ĐẠI HỌC BẰNG PYTHON CODE, VẼ BIỂU ĐỒ TRỰC QUAN
- Quy trình gồm 5 bước :
1.Thu thập dữ liệu bằng thư viện curl của python (Collect data by curl)
2.Làm sạch dữ liệu ( Clean up raw- data)
3 Chuyển thành file Excel, phân tích với excel
4 Vẽ biểu đồ trực quan bằng file CSV
1.Collect data by curl
File raw data.txt chứa dữ liệu điểm thi của các thí sinh được lấy từ website diemthi.hcm.edu.vn bằng công cụ curl và Python Dữ liệu được lưu trữ dưới dạng HTML5
Mô tả code:
Import thư viện subprocess: Dùng để thực thi các lệnh trong terminal
Khai báo biến:
Trang 8- start: Số báo danh đầu tiên.
- end: Số báo danh kết thúc
- file: File để lưu trữ dữ liệu
*.Lặp từ số báo danh đầu tiên đến số báo danh kết thúc:
- Tạo lệnh curl để lấy dữ liệu điểm thi của thí sinh với số báo danh hiện tại
- Sử dụng subprocess.check_output để thực thi lệnh curl và lấy kết quả
- Ghi kết quả vào file raw_data.txt
Kết quả:
- Sau khi chạy code, file raw_data.txt sẽ chứa dữ liệu điểm thi của các thí sinh trong khoảng số báo danh đã khai báo
- Dữ liệu được lưu trữ dưới dạng HTML5
Bước tiếp theo:
- Làm sạch dữ liệu: Xóa các phần không cần thiết và chuyển đổi dữ liệu về dạng
dễ phân tích
- Chuyển đổi dữ liệu sang định dạng Excel và CSV: Dễ dàng cho việc thao tác
và phân tích dữ liệu
2.Làm sạch dữ liệu (Clean up raw data)
- Tóm tắt quy trình làm sạch dữ liệu thô:
* Xử lý dữ liệu thô:
· Loại bỏ các phần thừa:
- Xóa các dòng đầu tiên chứa DOCTYPE
- Xóa các dòng trống
- Chuyển đổi các ký tự đặc biệt sang dạng có thể đọc được
· Lưu trữ dữ liệu đã xử lý vào một biến và chuyển đổi sang định dạng CSV
* Sắp xếp dữ liệu:
- Sử dụng thư viện csv trong Python để mở file text
- Sắp xếp dữ liệu theo yêu cầu
- Lưu trữ dữ liệu đã sắp xếp sang file CSV mới
* Mở file dữ liệu:
- Mở file CSV đã được làm sạch bằng Sublime Text để xem dữ liệu dạng Raw
- Mở file CSV bằng Excel để xem dữ liệu dạng bảng
* Xử lý file Excel:
- Chuyển đổi định dạng file Excel sang UTF-8
- Tải file Excel để hiển thị dữ liệu đẹp và rõ ràng
Chú ý:
- Khi phân tích dữ liệu, sử dụng file CSV để thao tác trực tiếp với code
- Khi cần hiển thị dữ liệu trực quan, sử dụng file Excel đã được xử lý
Code ví dụ cho phần làm sạch dữ liệu:
Trang 9# Ghi dữ liệu vào file CSV
with open('clean_data.csv', 'w', newline='') as f:
writer = csv.writer(f)
writer.writerow(processed_data)
Kết luận:
- Quy trình làm sạch dữ liệu thô bao gồm các bước xử lý dữ liệu thô, sắp xếp
dữ liệu và mở file dữ liệu Việc sử dụng file CSV và file Excel phù hợp sẽ giúp thao tác và hiển thị dữ liệu hiệu quả
- Đọc và xử lý dữ liệu học sinh từ Excel bằng Python
Chú ý: Phần bài làm khá dài nên chỉ có thể đưa tóm tắt về code Ý chính
3 Chuyển thành file Excel, phân tích với excel
Mở file Excel và xử lý ký tự đặc biệt:
+, Mở file Excel chứa thông tin học sinh Lúc này, bảng tính sẽ hiển thị tất cả dữliệu nhưng có thể gặp vấn đề với các ký tự đặc biệt
+, Chọn tab Data -> Get Data -> From Text/CSV
+, Chọn file Excel vừa mở ở bước 1
+, Trong cửa sổ Text Import Wizard, chọn File origin -> Unicode (UTF-8).+, Nhấn Load để tải dữ liệu
Lý do chọn UTF-8:
UTF-8 là định dạng mã hóa ký tự phổ biến, hỗ trợ tốt tiếng Việt và các ngôn ngữkhác Việc chọn UTF-8 giúp đảm bảo dữ liệu được hiển thị chính xác, tránh lỗi font chữ hoặc ký tự
- Phân tích dữ liệu với file CSV:
+, Để phân tích dữ liệu, ta có thể sử dụng file CSV thay vì file Excel Lý do là vì:
File CSV có cấu trúc đơn giản, dễ đọc và xử lý bằng code
+, Có thể sử dụng các thư viện Python để đọc file CSV và thao tác với dữ liệu một cách hiệu quả
Đọc file Excel và sắp xếp theo tên:
Trang 10Để đọc file Excel và sắp xếp dữ liệu theo tên học sinh, ta có thể sử dụng code Python sau:
- Kết quả, sau đó sort theo tên, sort theo điểm, sort theo các thông tin khác,
ngoài ra , còn làm một số thao tác tìm kiếm… xử lý trực tiếp trong excel, phần này đã có trong slide.FILE dữ liệu ở một tệp riêng khác
- Tuy nhiên, khi phân tích dữ liệu ta sử dụng file csv, ta làm việc trực tiếp với
code đọc từng dòng và chia cắt dấu phẩy Điều này dễ hơn việc phân tích trực quan bằng excel, đôi khi xử lý bằng excel sẽ gây ra rối về mặt dữ liệu , cho người sử dụng dữ liệu
Kết quả :
- Có khá nhiều người lớn tuổi ,40 tuổi trở lên đi thi đại học
- Dữ liệu có vấn đề khi có 3 người sinh ngày 0/0
- Có 2 người sinh năm 2003, thi trước tuổi, 2 người này đều sinh tháng 1,
điểm toán của 2 người này đều rất cao, trên 9
Trang 11- 5 bạn điểm văn cao nhất trong này là 9.25
3 Vẽ biểu đồ trực quan bằng file CSV
- Dùng excel rất hạn chế, chỉ có một số hàm đơn giản có sẵn, Khó để đổi dữ liệu
VD :
+, 1 là số không đi thi
+, Điểm nhập bằng chữ sẽ khó tìm ras
+, Excel không xử lý được quá nhiều dữ liệu, khó xử lý dữ liệu lớn
Vì vậy phải dùng python ( Scripting language) để xử lý dễ hơn
+, Có thể điều khiển toàn bộ dữ liệu
+, Tuy nhiên không tiện, cần một đội chỉ biết làm về excel, cần một đội data engineer để phân tích
Giải thích về ngôn ngữ kịch bản (Scripting language trong phân tích dữ liệu )
Trang 12- Phân tích dữ liệu từ nhiều nguồn khác nhau, bao gồm tệp tin, cơ sở dữ liệu và API.
- Thực hiện các thao tác dữ liệu phức tạp, như lọc, sắp xếp, nhóm và chuyển đổi
dữ liệu
*, Trực quan hóa dữ liệu:
- Tạo các biểu đồ và đồ thị trực quan để truyền tải thông tin từ dữ liệu
- Tùy chỉnh giao diện trực quan hóa để đáp ứng nhu cầu cụ thể
*, Phân tích thống kê:
- Thực hiện các phép tính thống kê trên dữ liệu để trích xuất thông tin chi tiết
- Xây dựng các mô hình dự đoán để đưa ra các dự đoán dựa trên dữ liệu
Giới thiệu về một số ngôn ngữ kịch bản phổ biến được sử dụng trong phân tích
- Bash: Lựa chọn tốt cho xử lý tập tin và tự động hóa các tác vụ dòng lệnh.
Ví dụ về việc sử dụng ngôn ngữ kịch bản trong phân tích dữ liệu:
1.Python: Sử dụng Pandas để đọc dữ liệu từ tệp CSV, lọc dữ liệu theo các tiêu
chí cụ thể và vẽ biểu đồ để trực quan hóa dữ liệu
2.R: Sử dụng ggplot2 để tạo các biểu đồ và đồ thị tùy chỉnh, thực hiện phân tích
thống kê và xây dựng các mô hình dự đoán
3.JavaScript: Sử dụng D3.js để tạo các biểu đồ tương tác và trực quan hóa dữ
liệu trên trang web
-Có nhiều phần mềm mềm như teablue để phân tích
Trang 134 Vẽ biểu đồ trực quan bằng file CSV
A, Vẽ biểu đồ thí sinh bỏ thi hoặc không đăng kí (Bar chart the best chosen)Code :
Trang 14#Make some label
For rect,label in zip(rects,not_take_exam):
- Trích xuất tiêu đề các môn học
- Xử lý dữ liệu từng sinh viên:
- Tách dữ liệu từng sinh viên thành danh sách riêng
- Tăng số lượng sinh viên bỏ thi cho từng môn tương ứng với điểm "-1"
- Tính toán tỷ lệ phần trăm sinh viên bỏ thi cho từng môn
- Vẽ biểu đồ hình cột thể hiện tỷ lệ phần trăm sinh viên bỏ thi
Trang 16for i in range len(students)):
explore = (0, 0.1, 0, 0) #Only explode the 2nd slide
fig, ax1 = plt.subplot()
ax1.pie(sizes, explode = explode, labels=labels autopct= '%1.1f%%', shadow =