1. Cấu trúc dữ liệu cho báo cáo
Khi bạn xây dựng báo cáo, điều quan trọng không phải chỉ là trình bày một đống dữ liệu trong giao diện đẹp, mà là làm cho thông tin trở nên dễ hiểu và tiếp cận. Việc chuẩn bị dữ liệu ảnh hưởng trực tiếp đến mức độ dễ dàng và nhanh chóng mà báo cáo của bạn sẽ được hiểu.
Bảng tổng hợp: công cụ Thụy Sĩ cho báo cáo
Bảng tổng hợp là một cách mạnh mẽ để tổng kết, gom nhóm và trình bày dữ liệu, thường được sử dụng trong Excel để phân tích. Trong pandas, chúng ta có thể dễ dàng tạo bảng tổng hợp bằng phương pháp pivot_table. Hãy cùng xem một ví dụ đơn giản.
Giả sử bạn có dữ liệu về doanh số bán hàng trong cửa hàng:
import pandas as pd
data = {
'Sản phẩm': ['Cam', 'Táo', 'Chuối', 'Cam', 'Chuối', 'Táo'],
'Tháng': ['Tháng 1', 'Tháng 1', 'Tháng 1', 'Tháng 2', 'Tháng 2', 'Tháng 2'],
'Doanh số': [150, 200, 250, 130, 180, 210]
}
df = pd.DataFrame(data)
Để tạo một bảng tổng hợp hiển thị tổng số doanh số của mỗi sản phẩm theo từng tháng, chúng ta sử dụng pivot_table.
pivot_df = df.pivot_table(values='Doanh số', index='Sản phẩm', columns='Tháng', aggfunc='sum')
print(pivot_df)
Ví dụ đơn giản này cho thấy chúng ta có thể nhanh chóng gom nhóm dữ liệu theo danh mục và ngày tháng — đây là nền tảng lý tưởng cho các báo cáo.
2. Sử dụng các phương pháp pandas để chuẩn bị dữ liệu
Phương pháp pivot_table
Phương pháp pivot_table rất linh hoạt và không chỉ cho phép tổng hợp dữ liệu mà còn áp dụng các hàm gom nhóm khác như mean, count, v.v. Hãy xem cách hiển thị giá trị trung bình của doanh số:
pivot_mean_df = df.pivot_table(values='Doanh số', index='Sản phẩm', columns='Tháng', aggfunc='mean')
print(pivot_mean_df)
Phương pháp crosstab
Phương pháp crosstab trong pandas tương tự như bảng tổng hợp, nhưng được sử dụng để tính toán tần suất. Giả sử chúng ta muốn tính tần suất bán mỗi sản phẩm trong các tháng khác nhau:
cross_df = pd.crosstab(df['Sản phẩm'], df['Tháng'])
print(cross_df)
Phương pháp này rất hữu ích khi cần nghiên cứu phân phối dữ liệu theo danh mục hoặc phân tích tần suất các sự kiện.
3. Tùy chỉnh hiển thị dữ liệu với các chỉ mục đa chiều
Chỉ mục đa chiều
Đúng vậy, pandas cho phép bạn vượt ra ngoài dữ liệu hai chiều và sử dụng các chỉ mục đa chiều. Điều này hữu dụng khi biểu diễn dữ liệu với nhiều mức độ gom nhóm. Ví dụ, chúng ta thêm "Năm" vào tập dữ liệu của mình và tạo chỉ mục đa chiều.
data['Năm'] = [2023, 2023, 2023, 2024, 2024, 2024]
df = pd.DataFrame(data)
multi_pivot_df = df.pivot_table(values='Doanh số', index=['Năm', 'Sản phẩm'], columns='Tháng', aggfunc='sum')
print(multi_pivot_df)
Giờ đây, dữ liệu của chúng ta đã được gom nhóm theo năm và sản phẩm, giúp chúng trở nên thông tin hơn.
4. Thực hành và phân tích
Hãy áp dụng những gì chúng ta đã học vào thực tế. Bài tập: chuẩn bị dữ liệu cho báo cáo bán hàng.
Giả sử bạn có các dữ liệu sau về doanh số bán hàng:
data = {
'Sản phẩm': ['Cam', 'Cam', 'Táo', 'Táo', 'Chuối', 'Chuối'],
'Tháng': ['Tháng 1', 'Tháng 2', 'Tháng 1', 'Tháng 2', 'Tháng 1', 'Tháng 2'],
'Năm': [2023, 2023, 2024, 2024, 2023, 2024],
'Doanh số': [150, 200, 180, 220, 120, 130]
}
df = pd.DataFrame(data)
Nhiệm vụ của bạn là tạo một bảng tổng hợp hiển thị tổng số doanh số cho mỗi sản phẩm theo từng tháng, bao gồm cả dữ liệu tổng cộng theo năm.
pivot_total_df = df.pivot_table(values='Doanh số', index=['Năm', 'Sản phẩm'], columns='Tháng', aggfunc='sum', margins=True, margins_name='Tổng')
print(pivot_total_df)
Dòng “Tổng” này sẽ hiển thị tổng số cho tất cả danh mục, thường rất cần thiết để có cái nhìn tổng quan.
5. Thảo luận về chiến lược trình bày dữ liệu và phân tích
Chuẩn bị dữ liệu cho báo cáo với pandas không chỉ là toán học, mà còn là nghệ thuật. Một phần quan trọng của quy trình này là chọn cách trình bày dữ liệu thông tin nhất, dù đó là các bảng với các phép tổng đơn giản hay đồ thị phức tạp. Trong thực tế, việc cấu trúc như vậy không chỉ giúp hiểu các chỉ số hiện tại mà còn đưa ra các quyết định sáng suốt. Bạn có thể sẽ thấy mình như một "phù thủy", biến những dòng số nhàm chán thành một bức tranh rõ ràng.
Nếu bạn muốn trở thành bậc thầy trong việc tự động hóa chuẩn bị báo cáo thì đừng quên các khả năng của pandas và đừng ngại thử nghiệm với các phương pháp và kỹ thuật khác nhau. Kỹ năng này sẽ có ích không chỉ trong phân tích mà còn cả trong các buổi phỏng vấn và sự nghiệp tương lai của bạn. Hãy mạnh dạn khám phá thế giới dữ liệu và làm cho báo cáo của mình trở nên hấp dẫn, thông tin và dễ tiếp cận!
GO TO FULL VERSION