Sắp xếp dữ liệu (Data wrangling) là quá trình làm sạch, chuyển đổi và tổ chức dữ liệu thô để phân tích và tích hợp thêm. Việc có kiến thức về việc sắp xếp dữ liệu là điều cần thiết đối với các doanh nghiệp và công ty đầu tư, vì việc sắp xếp dữ liệu là tiền đề cho nhiều quy trình phân tích và chuyển đổi dữ liệu khác thường được các chuyên gia tài chính sử dụng. Hãy cùng BAC tìm hiểu 7 bước để sắp xếp dữ liệu với Pandas và Python nhé!
1. Hiểu các nguyên tắc cơ bản về Python
Nếu bạn đang muốn lấn sân sang lĩnh vực phân tích dữ liệu hoặc khoa học dữ liệu, trước tiên bạn cần học một số kỹ năng lập trình cơ bản. Bạn nên bắt đầu với Python hoặc R, nhưng ở bài viết này chúng ta sẽ tập trưng tìm hiểu Python. Bạn có thể tìm hiểu các khoá học về Python tại BAC và có thể tìm hiểu thêm các kiến thức cơ bản như:
Kiến thức cơ bản về Python: Làm quen với cú pháp Python, kiểu dữ liệu, cấu trúc điều khiển, cấu trúc dữ liệu tích hợp và các khái niệm lập trình hướng đối tượng cơ bản (object-oriented programming - OOP).
Nguyên tắc cơ bản về quét web: Tìm hiểu các khái niệm cơ bản về quét web, bao gồm cấu trúc HTML, yêu cầu HTTP và phân tích nội dung HTML. Làm quen với các thư viện như BeautifulSoup và các yêu cầu về tác vụ quét web.
Kết nối với cơ sở dữ liệu: Tìm hiểu cách kết nối Python với hệ thống cơ sở dữ liệu bằng các thư viện như SQLAlchemy hoặc psycopg2. Hiểu cách thực hiện các truy vấn SQL từ Python và truy xuất dữ liệu từ cơ sở dữ liệu.
2. Tải dữ liệu từ nhiều nguồn khác nhau
Điều đầu tiên là hãy thiết lập môi trường làm việc của bạn. Cài đặt Pandas (và các phần phụ thuộc bắt buộc của nó như NumPy). Thực hiện theo các phương pháp như sử dụng môi trường ảo để quản lý cài đặt ở cấp dự án.
Pandas là thư viện phân tích dữ liệu Python hiệu quả. Tuy nhiên, bạn cần làm quen với các cấu trúc dữ liệu cơ bản của Pandas DataFrame và chuỗi trước khi làm việc với Pandas. Dữ liệu ban đầu phải được tải vào khung dữ liệu Pandas từ nguồn của nó để được phân tích. Điều quan trọng là tìm hiểu cách nhập dữ liệu từ nhiều nguồn khác nhau, bao gồm cơ sở dữ liệu quan hệ, bảng tính Excel, tệp CSV, v.v.
Đọc dữ liệu từ tệp CSV: “pd.read_csv()” chức năng dùng để đọc dữ liệu từ tệp Giá trị được phân tách bằng dấu phẩy ( Comma-Separated Values - CSV) và tải dữ liệu đó vào DataFrame. Hiểu các tham số, bạn có thể sử dụng để tùy chỉnh quy trình nhập, chẳng hạn như chỉ định đường dẫn tệp, dấu phân cách, mã hóa, v.v.
Nhập dữ liệu từ tệp Excel: “pd.read_excel()” cho phép bạn nhập dữ liệu từ tệp Microsoft Excel (.xlsx) và lưu trữ dữ liệu đó trong DataFrame.
Tải dữ liệu từ tệp JSON: “pd.read_json()” đây là hàm dùng để nhập dữ liệu từ tệp JSON (Ký hiệu đối tượng JavaScript) và tạo DataFrame.
Đọc dữ liệu từ tệp Parquet: “pd.read_parquet()” cho phép bạn nhập dữ liệu từ tệp Parquet, một định dạng tệp lưu trữ theo cột.
Nhập dữ liệu từ các bảng cơ sở dữ liệu quan hệ: “pd.read_sql()” nó cho phép bạn truy vấn dữ liệu từ cơ sở dữ liệu quan hệ và tải dữ liệu đó vào DataFrame. Hiểu cách thiết lập kết nối tới cơ sở dữ liệu, thực hiện các truy vấn SQL và tìm nạp dữ liệu trực tiếp vào Pandas.
3. Chọn hàng và cột, lọc khung dữ liệu
Ở bước kế tiếp, điều đầu tiên là bạn cần phải tìm hiểu cách chọn các hàng và cột cụ thể từ DataFrame của Pandas cùng với cách lọc dữ liệu dựa trên các tiêu chí cụ thể. Các kỹ thuật này rất cần thiết giúp bạn thao tác dữ liệu và trích xuất thông tin liên quan từ bộ dữ liệu.
3.1. Lập chỉ mục và cắt các khung dữ liệu:
Bạn có thể cắt và lập chỉ mục thành DataFrames bằng cách sử dụng các phương thức như “.loc[]” lập “.iloc[]” chỉ mục , và boolean.
.loc[]: Phương pháp này được sử dụng để lập chỉ mục dựa trên nhãn , cho phép bạn chọn các hàng và cột theo nhãn của chúng.
.iloc[]: Phương pháp này được sử dụng để lập chỉ mục dựa trên số nguyên , cho phép bạn chọn các hàng và cột theo vị trí số nguyên của chúng.
Lập chỉ mục Boolean: Kỹ thuật này liên quan đến việc sử dụng các biểu thức boolean để lọc dữ liệu dựa trên các điều kiện cụ thể.
Lựa chọn cột theo tên là một công việc được thực hiện thường xuyên. Vì vậy, bạn nên làm quen với việc sử dụng tên cột để truy cập và truy xuất các cột cụ thể.
3.2. Lọc khung dữ liệu:
Những điều bạn cần lưu ý khi lọc khung dữ liệu:
Lọc có điều kiện: Hiểu cách lọc dữ liệu dựa trên các điều kiện cụ thể bằng cách sử dụng biểu thức boolean. Tìm hiểu cách sử dụng toán tử so sánh (>, <, ==, v.v.) để tạo bộ lọc trích xuất các hàng đáp ứng các tiêu chí nhất định.
Kết hợp các bộ lọc: Tìm hiểu cách kết hợp nhiều bộ lọc bằng cách sử dụng các toán tử logic như '&' (và), '|' (hoặc) và '~' (không). Điều này sẽ cho phép bạn tạo các điều kiện lọc phức tạp hơn.
Sử dụng isin(): Tìm hiểu cách sử dụng isin()phương pháp này để lọc dữ liệu dựa trên việc các giá trị có xuất hiện trong danh sách được chỉ định hay không. Điều này hữu ích cho việc trích xuất các hàng trong đó giá trị của một cột nhất định khớp với bất kỳ mục nào được cung cấp.
Bạn có thể chọn và lọc dữ liệu từ các khung dữ liệu Pandas một cách hiệu quả để có được thông tin thích hợp nhất bằng cách dựa trên những mô tả phía trên.
4. Làm sạch dữ liệu:
Trước khi tiến hành nghiên cứu bổ sung, việc khám phá dữ liệu có thể giúp bạn nắm bắt cấu trúc của nó, phát hiện các vấn đề có thể xảy ra và có được những quan điểm mới. Xử lý các giá trị bị thiếu, loại bỏ các giá trị trùng lặp và đảm bảo tính nhất quán của dữ liệu đều là một phần của quá trình làm sạch dữ liệu:
Kiểm tra dữ liệu: Tìm hiểu cách sử dụng các phương pháp như head(), tail(), info() và describe() thuộc shape tính để có cái nhìn tổng quan về tập dữ liệu của bạn. Chúng cung cấp thông tin về hàng đầu tiên/cuối cùng, loại dữ liệu, số liệu thống kê tóm tắt và kích thước của khung dữ liệu.
Xử lý dữ liệu bị thiếu: Hiểu tầm quan trọng của việc xử lý các giá trị bị thiếu trong tập dữ liệu của bạn. Tìm hiểu cách xác định dữ liệu bị thiếu bằng các phương pháp như isna() và isnull() và xử lý dữ liệu đó bằng các phương pháp dropna(), fillna() hoặc quy định.
Xử lý các hàng trùng lặp: Tìm hiểu cách phát hiện và xóa các hàng trùng lặp bằng các phương pháp như duplicated() và drop_duplicates(). Các bản sao có thể làm sai lệch kết quả phân tích và cần được giải quyết để đảm bảo tính chính xác của dữ liệu.
Làm sạch các cột chuỗi: Tìm hiểu cách sử dụng .str phương thức truy cập và chuỗi để thực hiện các tác vụ làm sạch chuỗi như xóa khoảng trắng, trích xuất và thay thế chuỗi con, tách và nối chuỗi, v.v.
Chuyển đổi kiểu dữ liệu: Hiểu cách chuyển đổi kiểu dữ liệu bằng các phương thức như astype(). Việc chuyển đổi dữ liệu sang các loại thích hợp đảm bảo rằng dữ liệu của bạn được trình bày chính xác và tối ưu hóa việc sử dụng bộ nhớ.
Ngoài ra, bạn có thể khám phá tập dữ liệu của mình bằng cách sử dụng hình ảnh trực quan đơn giản và thực hiện kiểm tra chất lượng dữ liệu.
4.1. Khám phá dữ liệu và kiểm tra chất lượng dữ liệu:
Để tìm hiểu thêm về dữ liệu của bạn, hãy sử dụng phân tích thống kê và trực quan hóa. Khám phá cách sử dụng Pandas và các thư viện bổ sung, chẳng hạn như Matplotlib hoặc Seaborn, để tạo các biểu đồ đơn giản hiển thị sự phân bổ, mối tương quan và mẫu trong dữ liệu của bạn.
Kiểm tra chất lượng của dữ liệu để đảm bảo dữ liệu chính xác. Điều này có thể đòi hỏi phải tìm kiếm các giá trị ngoại lệ, xác nhận rằng các giá trị nằm trong phạm vi dự kiến hoặc đảm bảo tính nhất quán giữa các cột có liên quan.
5. Chuyển đổi, GroupBy và Tập hợp
Có bao giờ bạn muốn tóm tắt dữ liệu theo nhiều tiêu chuẩn? Để thực hiện điều này, bạn nên thành thạo trong việc chuyển đổi dữ liệu, sử dụng GroupBy và sử dụng các kỹ thuật tổng hợp khác nhau cho thông tin của mình.
Chuyển đổi dữ liệu: Tìm hiểu cách sửa đổi dữ liệu của bạn bằng các kỹ thuật như thêm hoặc đổi tên cột, loại bỏ các cột không cần thiết và chuyển đổi dữ liệu giữa các định dạng hoặc đơn vị khác nhau.
Áp dụng các hàm: Hiểu cách sử dụng apply() phương pháp để áp dụng các hàm tùy chỉnh cho khung dữ liệu của bạn, cho phép bạn chuyển đổi dữ liệu theo cách linh hoạt và tùy chỉnh hơn.
Định hình lại dữ liệu: Khám phá các phương pháp khung dữ liệu bổ sung như melt() và stack(), cho phép bạn định hình lại dữ liệu và làm cho dữ liệu phù hợp với nhu cầu phân tích cụ thể.
Chức năng GroupBy: groupby() đây là phương thức cho phép bạn nhóm dữ liệu của mình dựa trên các giá trị cột cụ thể. Điều này cho phép bạn thực hiện tổng hợp và phân tích dữ liệu trên cơ sở từng nhóm.
Hàm tổng hợp: Tìm hiểu về các hàm tổng hợp phổ biến như tổng, trung bình, số lượng, tối thiểu và tối đa. Các hàm này được sử dụng để groupby() tóm tắt dữ liệu và tính toán số liệu thống kê mô tả cho từng nhóm.
6. Joins và Pivot Table
Joins (tham gia) cho phép bạn kết hợp thông tin từ nhiều khung dữ liệu dựa trên các cột chung, trong khi Pivot Table (bảng tổng hợp) giúp bạn tóm tắt và phân tích dữ liệu ở định dạng bảng. Theo tùy chọn, bạn có thể khám phá cách tạo bảng tổng hợp nhiều cấp, nơi bạn có thể phân tích dữ liệu bằng cách sử dụng nhiều cột làm cấp chỉ mục.
Hợp nhất DataFrames: Hiểu các loại liên kết khác nhau, chẳng hạn như nối trong, nối ngoài, nối trái và nối phải. Tìm hiểu cách sử dụng hàm merge() để kết hợp các khung dữ liệu dựa trên các cột được chia sẻ.
Ghép nối: Tìm hiểu cách ghép nối các khung dữ liệu theo chiều dọc hoặc chiều ngang bằng cách sử dụng hàm concat(). Điều này rất hữu ích khi kết hợp các khung dữ liệu với các cấu trúc tương tự.
Thao tác chỉ mục: Hiểu cách đặt, đặt lại và đổi tên các chỉ mục trong khung dữ liệu. Thao tác chỉ mục thích hợp là điều cần thiết để thực hiện các phép nối và tạo bảng tổng hợp một cách hiệu quả.
Tạo bảng tổng hợp: pivot_table() Phương pháp này cho phép bạn chuyển đổi dữ liệu của mình thành định dạng tóm tắt và lập bảng chéo. Tìm hiểu cách chỉ định các hàm tổng hợp mong muốn và nhóm dữ liệu của bạn dựa trên các giá trị cột cụ thể.
7. Xây dựng bảng điều khiển dữ liệu
Xây dựng bảng điều khiển tương tác sẽ giúp bạn trau dồi cả kỹ năng phân tích dữ liệu và trực quan hóa. Khi tìm kiếm cơ hội về dữ liệu, bạn cần có danh mục dự án và bạn cần tiến xa hơn việc phân tích dữ liệu trong sổ ghi chép Jupyter. Hơn nữa bạn có thể tìm hiểu và sử dụng Tableau. Ngoài ra, bạn có thể xây dựng trên nền tảng Python và bắt đầu xây dựng trang tổng quan bằng thư viện Python Streamlit. Streamlit giúp bạn xây dựng bảng thông tin tương tác mà không phải lo lắng về việc viết hàng trăm dòng HTML và CSS.
Hy vọng rằng những chia sẻ của BAC sẽ giúp ích cho bạn. Đừng quên đón đọc các bài viết mới nhất được cập nhật tại BAC's Blog bạn nhé.