Trong quá trình học tập và nghiên cứu môn học Xử lí dữ liệu lớn, em đã được sự giảng dạy và hướng dẫn rất tận tình, nhiệt tình của thầy.. Những số liệu trong các bảng biểu phục vụ cho vi
Trang 1XỬ LÍ DỮ LIỆU LỚN
GIỮA KÌ
Người hướng dẫn: THẦY BÙI THANH HÙNG Người thực hiện: NGUYỄN TRUNG THẮNG – 519H9231
Lớp : 19H50202
Khóa : 23
THÀNH PHỐ HỒ CHÍ MINH, NĂM 2022
Trang 2XỬ LÍ DỮ LIỆU LỚN
GIỮA KÌ
Người hướng dẫn: THẦY BÙI THANH HÙNG Người thực hiện: NGUYỄN TRUNG THẮNG – 519H0231
Lớp : 19H50202
Khóa : 23
THÀNH PHỐ HỒ CHÍ MINH, NĂM 2022
Trang 3LỜI CẢM ƠN
Lời đầu tiên, em xin gửi lời cảm ơn sâu sắc đến thầy cô khoa Công nghệ thông tin và đặc biệt là thầy Bùi Thanh Hùng Trong quá trình học tập và nghiên cứu môn học Xử lí
dữ liệu lớn, em đã được sự giảng dạy và hướng dẫn rất tận tình, nhiệt tình của thầy Các bạn đã giúp mình tích lũy thêm nhiều kiến thức hay và bổ ích Tuy nhiên, kiến thức của tem về môn Xử lí dữ liệu lớn vẫn còn những hạn chế nhất định Vì vậy chắc chắn sẽ không tránh khỏi những thiếu sót trong quá trình hoàn thành bài tiểu luận này Mời thầy và các bạn xem, góp ý để bài tiểu luận của em được hoàn thiện hơn
Xin chân thành cảm ơn!
Trang 4LỜI CAM ĐOAN
Tôi xin cam đoan đây là sản phẩm đồ án của riêng tôi và được sự hướng dẫn của Bui Thanh Hung Các kết quả trong đề tài này là trung thực và chưa công bố dưới bất
kỳ hình thức nào trước đây Những số liệu trong các bảng biểu phục vụ cho việc phân tích, nhận xét, đánh giá được chính tác giả thu thập từ các nguồn khác nhau có ghi rõ trong phần tài liệu tham khảo
Ngoài ra, trong tiểu luận còn sử dụng một số nhận xét, đánh giá cũng như số liệu của các tác giả khác, cơ quan tổ chức khác đều có trích dẫn và chú thích nguồn gốc
Nếu phát hiện có bất kỳ sự gian lận nào tôi xin hoàn toàn chịu trách nhiệm
về nội dung đồ án của mình Trường đại học Tôn Đức Thắng không liên quan đến
những vi phạm tác quyền, bản quyền do tôi gây ra trong quá trình thực hiện (nếu có)
TP Hồ Chí Minh, ngày 4 tháng 10 năm 2022
Tác giả (ký tên và ghi rõ họ tên)
Nguyễn Trung Thắng
Trang 5PHẦN XÁC NHẬN VÀ ĐÁNH GIÁ CỦA GIẢNG VIÊN
Phần xác nhận của GV hướng
dẫn
_
Tp Hồ Chí Minh, ngày tháng năm
(kí và ghi họ tên)
Trang 6I THU THẬP DỮ LIỆU
1 Bạn hãy viết code cào dữ liệu từ trang web trên, lưu kết quả vào 1 file tương ứng (kq.txt) và mô tả ngắn gọn về cấu trúc của trang Web trên?
1.1 Code cào dữ liệu:
I.2 Cấu trúc trang web
Trang 72 Với dữ liệu bạn vừa cào về, bạn hãy thực hiện các yêu cầu sau:
Trang 82.1 Hãy đọc tất cả các thẻ html (div) với lớp là "quote" và lưu nó trong biến 'result’, hiển thị giá trị biến 'result’ ra màn hình?
2.3 Hãy tìm trong biến 'result’ vừa rồi các dữ liệu có chứa nhãn
"small" với class là "author" và in kết quả ra màn hình?
Trang 92.4 Hãy viết hàm tacgiaLink() để lấy nội dung của mỗi tác giả Với mỗi tác giả in ra màn hình các nội dung:
Trang 102.5 Hãy lưu kết quả ở câu c vào file Quote.csv tương ứng, với mỗi tác giả là 1 dòng dữ liệu Bạn được yêu cầu thu thập ít nhất 40 câu nói nổi tiếng từ trang web trên một cách tự động theo code của các ý trên?
II KHAI PHÁ DỮ LIỆU
1 Xử lý dữ liệu- Data Imputation
- Missing data là dữ liệu bị thiếu, được hiển thị như NaN, Nat, Null, N/A,
… Missing Data xuất hiện do nhiều nguyên nhân như:
Người dùng quên điền
Dữ liệu bị mất trong quá trình chuyển thủ công từ cơ sở dữ liệu cũ
Lỗi của chương trình
Thiếu dữ liệu do trùng hợp
- Missing Data có thể được phân thành 3 loại: Missing at Random (dữ liệu khuyết ngẫu nhiên), Missing Completely at Random (dữ liệu thiếu hoàn
Trang 11toàn ngẫu nhiên) và Missing Not at Random (dữ liệu khuyết không ngẫu nhiên)
2 Khám phá dữ liệu- Data Exploration
- Pandas là một thư viện Python cung cấp các cấu trúc dữ liệu nhanh, mạnh
mẽ, linh hoạt và mang hàm ý Tên thư viện được bắt nguồn từ panel data (bảng dữ liệu) Pandas được thiết kế để làm việc dễ dàng và trực quan với
dữ liệu có cấu trúc (dạng bảng, đa chiều, có tiềm năng không đồng nhất)
và dữ liệu chuỗi thời gian
- Mục tiêu của pandas là trở thành khối căn bản (building block) cấp cao
cơ bản cho công việc thực tế, phân tích dữ liệu thế giới thực trong Python, và rộng hơn là trở thành công cụ thao tác / phân tích mã nguồn
mở mạnh mẽ và linh hoạt nhất có sẵn trong bất kỳ loại ngôn ngữ lập trình nào
- Pandas rất phù hợp với nhiều loại dữ liệu khác nhau:
- Dữ liệu dạng bảng với các cột được nhập không đồng nhất, như trong bảng SQL hoặc bảng tính Excel
- Dữ liệu chuỗi thời gian theo thứ tự và không có thứ tự (không nhất thiết phải có tần số cố định)
- Dữ liệu ma trận tùy ý (được nhập đồng nhất hoặc không đồng nhất) với nhãn hàng và cột
- Bất kỳ hình thức khác của các bộ dữ liệu quan sát / thống kê Dữ liệu thực sự không cần phải được dán nhãn vào cấu trúc dữ liệu pandas
- Pandas được xây dựng dựa trên Numpy Hai cấu trúc dữ liệu chính của
pandas là Series (1 chiều) và DataFrame (2 chiều) xử lý được phần lớn
các trường hợp điển hình trong tài chính, thống kê, khoa học xã hội và nhiều lĩnh vực kỹ thuật
- Ưu điểm của pandas:
Trang 12- Dễ dàng xử lý dữ liệu mất mát, được biểu thị dưới dạng NaN, trong dữ liệu dấu phẩy động cũng như dấu phẩy tĩnh theo ý người dùng mong muốn: bỏ qua hoặc chuyển sang 0
- Khả năng thay đổi kích thước: các cột có thể được chèn và xóa khỏi DataFrame và các đối tượng chiều cao hơn
- Căn chỉnh dữ liệu tự động và rõ ràng: các đối tượng có thể được căn chỉnh rõ ràng với một bộ nhãn hoặc người dùng chỉ cần bỏ qua các nhãn
và để Series, DataFrame, v.v tự động căn chỉnh dữ liệu cho bạn trong các tính toán
- Chức năng group by mạnh mẽ, linh hoạt để thực hiện các hoạt động kết hợp phân tách áp dụng trên các tập dữ liệu, cho cả dữ liệu tổng hợp và chuyển đổi
- Dễ dàng chuyển đổi dữ liệu rời rạc (ragged), chỉ mục khác nhau (differently-indexed) trong các cấu trúc dữ liệu khác của Python và NumPy thành các đối tượng DataFrame
III Tài liệu tham khảo
- Xử lý dữ liệu với Pandas trong Python: https://codelearn.io/sharing/xu-ly-du-lieu-voi-pandas-trong-python
- Cào dữ liệu Python: Web Scraping với Python bằng BeautifulSoup và MongoDB (ichi.pro)