Khám Phá Các Mô Hình Thu Nhập Với Python: Pandas, Matplotlib và Seaborn

Phần mềm02 tháng 6, 2026·6 phút đọc

Bài viết này hướng dẫn cách sử dụng Python cùng các thư viện mạnh mẽ như Pandas, Matplotlib và Seaborn để phân tích dữ liệu điều tra dân số, từ đó tìm ra các mô hình thu nhập dựa trên độ tuổi, giới tính, nghề nghiệp và trình độ học vấn.

Khám Phá Các Mô Hình Thu Nhập Với Python: Pandas, Matplotlib và Seaborn

Khi nói về thu nhập và lợi nhuận, chúng ta thường quy kết thành công cho sự chăm chỉ và trí thông minh. Tuy nhiên, thực tế thường nằm ở khoảng giữa hai thái cực này. Có những người may mắn trở thành triệu phú khi còn trẻ, nhưng cũng có những người phải nỗ lực không ngừng để thăng tiến trong sự nghiệp và tăng thu nhập.

Trong bài viết này, chúng ta sẽ sử dụng Python để khám phá mối quan hệ giữa thu nhập với các yếu tố khác nhau như độ tuổi, giới tính, nghề nghiệp và trình độ học vấn. Đây là một hướng dẫn dành cho người mới bắt đầu sử dụng Python, kết hợp sức mạnh tính toán với tư duy phân tích của con người để rút ra những thông tin giá trị từ dữ liệu thô.

Thiết lập môi trường lập trình PythonThiết lập môi trường lập trình Python

Tổng quan về dự án và bộ dữ liệu

Chúng ta sẽ thực hiện phân tích trên bộ dữ liệu Adult Census Income Dataset, một bộ dữ liệu thực tế được lấy từ dữ liệu điều tra dân số Hoa Kỳ. Mặc dù bộ dữ liệu này có từ những năm 1990, nhưng nó vẫn cung cấp những cái nhìn thú vị về các mô hình thu nhập, với lưu ý rằng nhiều yếu tố đã thay đổi trong 30 năm qua, đặc biệt là khoảng cách giới tính.

Bộ dữ liệu chứa các thông tin nhân khẩu học và liên quan đến việc làm, bao gồm độ tuổi, nghề nghiệp, trình độ học vấn, tình trạng hôn nhân, giới tính, số giờ làm việc trung bình mỗi tuần, v.v.

Thiết lập môi trường và cài đặt thư viện

Trước khi bắt đầu, hãy đảm bảo bạn đã cài đặt Python và một IDE (môi trường phát triển tích hợp) như PyCharm. Chúng ta sẽ cần cài đặt ba thư viện chính cho dự án này:

  • Pandas: Thư viện phổ biến để làm việc với dữ liệu dạng bảng (như file CSV).
  • Matplotlib: Thư viện giúp tạo biểu đồ và hình ảnh trực quan hóa dữ liệu.
  • Seaborn: Thư viện được xây dựng trên Matplotlib, cung cấp các giao diện trực quan hóa dữ liệu nâng cao và đẹp mắt hơn.

Bạn có thể cài đặt chúng thông qua terminal bằng lệnh sau:

pip install pandas matplotlib seaborn

Sau khi cài đặt xong, chúng ta sẽ nhập các thư viện vào tệp mã nguồn của mình:

import pandas as pd
import matplotlib.pyplot as plt
import seaborn as sns

Tải dữ liệu và làm sạch

Chúng ta sẽ tải bộ dữ liệu vào một DataFrame của Pandas:

df = pd.read_csv("https://huggingface.co/api/resolve-cache/datasets/scikit-learn/adult-census-income/fbeef6ec0e6fd88a5028b94683144000a6b380d5/adult.csv?%2Fdatasets%2Fscikit-learn%2Fadult-census-income%2Fresolve%2Fmain%2Fadult.csv=&etag=%225cf74ede1a6de37d85c96a61d30819a694dee749%22")
print(df.head())

Dữ liệu thô thường chứa các giá trị bị thiếu hoặc không hợp lệ. Để đảm bảo độ chính xác của phân tích, chúng ta cần làm sạch dữ liệu bằng cách thay thế các dấu hỏi chấm (?) bằng giá trị NA và loại bỏ các hàng chứa giá trị bị thiếu:

print("Trước khi làm sạch:", len(df))
df = df.replace("?", pd.NA).dropna()
print("Sau khi làm sạch:", len(df))

Sau quá trình này, số lượng hàng dữ liệu giảm từ 32.561 xuống còn 30.162 hàng.

Quá trình làm sạch và phân tích dữ liệuQuá trình làm sạch và phân tích dữ liệu

Phân tích và trực quan hóa dữ liệu

Phân tích thu nhập chung

Đầu tiên, hãy xem xét phân phối thu nhập trong bộ dữ liệu. Chúng ta sẽ sử dụng biểu đồ đếm (count plot) của Seaborn:

sns.countplot(x="income", data=df)
plt.show()

Kết quả cho thấy phần lớn cá nhân trong bộ dữ liệu có thu nhập dưới 50.000 USD, trong khi tỷ lệ người có thu nhập trên 50.000 USD thấp hơn. Điều này phản ánh cấu trúc kinh tế của Mỹ vào đầu những năm 1990.

Thu nhập và Trình độ học vấn

Liệu trình độ học vấn có ảnh hưởng đến thu nhập không? Chúng ta sẽ nhóm dữ liệu theo trình độ học vấn và thu nhập để kiểm chứng:

result = df.groupby("education")["income"].value_counts().unstack()
result.plot(kind="bar", figsize=(12,6))
plt.title("Mối quan hệ giữa Giáo dục và Thu nhập")
plt.show()

Biểu đồ cho thấy mối tương quan mạnh mẽ: những người có trình độ học vấn cao hơn (Cử nhân, Thạc sĩ, Tiến sĩ) có xu hướng có thu nhập trên 50.000 USD cao hơn nhiều so với những người chỉ tốt nghiệp phổ thông. Tuy nhiên, không phải tất cả người có trình độ cao đều có thu nhập cao, cho thấy vẫn có các yếu tố khác đang发挥作用.

Thu nhập và Giờ làm việc

Chúng ta thường nghe nói "làm việc chăm chỉ sẽ được đền đáp". Hãy kiểm tra xem số giờ làm việc mỗi tuần có ảnh hưởng thế nào đến thu nhập bằng biểu đồ hộp (boxplot):

sns.boxplot(x="income", y="hours.per.week", data=df)
plt.show()

Nhóm có thu nhập trên 50K có trung vị giờ làm việc cao hơn và phân bố rộng hơn. Điều này xác nhận rằng những người làm việc nhiều giờ thường có xu hướng có thu nhập cao hơn. Tuy nhiên, vẫn có những ngoại lệ: một số người làm việc hơn 70 giờ/tuần nhưng vẫn có thu nhập dưới 50K.

Thu nhập và Giới tính

Vấn đề khoảng cách giới tính trong thu nhập đã được thảo luận rất nhiều. Biểu đồ dưới đây cho thấy sự phân bổ thu nhập theo giới tính:

result = df.groupby("sex")["income"].value_counts().unstack()
result.plot(kind="bar", figsize=(10,6), color=["skyblue", "blue"])
plt.title("Phân bố thu nhập theo Giới tính")
plt.show()

Rõ ràng, số lượng nam giới có thu nhập trên 50K vượt trội so với nữ giới. Phần lớn phụ nữ trong bộ dữ liệu nằm ở nhóm thu nhập dưới 50K.

Thu nhập và Nghề nghiệp

Cuối cùng, hãy xem xét nghề nghiệp nào mang lại thu nhập cao nhất:

result = df[df["income"] == ">50K"]["occupation"].value_counts().head(10)
print(result)

Kết quả cho thấy các vị trí "Exec-managerial" (Quản lý điều hành) và "Prof-specialty" (Chuyên môn chuyên nghiệp) chiếm tỷ lệ cao nhất trong nhóm thu nhập trên 50K. Điều này khẳng định rằng các vai trò quản lý và kỹ thuật chuyên sâu có tiềm năng thu nhập cao hơn.

Kết luận

Kết luận và các phát hiện chínhKết luận và các phát hiện chính

Thông qua việc phân tích bộ dữ liệu điều tra dân số năm 1994 bằng Python, Pandas, Matplotlib và Seaborn, chúng ta đã rút ra một số kết luận quan trọng:

  • Đa số dân số nằm trong nhóm thu nhập thấp.
  • Trình độ học vấn cao làm tăng khả năng có thu nhập cao.
  • Số giờ làm việc có ảnh hưởng, nhưng không phải là yếu tố đảm bảo cho thu nhập cao.
  • Nghề nghiệp là một trong những yếu tố mạnh mẽ nhất quyết định thu nhập.
  • Thu nhập thường tăng theo độ tuổi và kinh nghiệm.

Tóm lại, thu nhập không được quyết định bởi một yếu tố đơn lẻ mà là sự kết hợp phức tạp của giáo dục, nghề nghiệp, kinh nghiệm và cơ hội. Việc thành thạo các công cụ phân tích dữ liệu như Python là chìa khóa để chúng ta hiểu rõ hơn về các xu hướng kinh tế - xã hội.

Chia sẻ:FacebookX
Nội dung tổng hợp bằng AI, mang tính tham khảo. Xem bài gốc ↗