Pandas read_csv() với ví dụ

Nhập CSV trong Pandas

Trong hướng dẫn TensorFlow, bạn sẽ sử dụng tập dữ liệu dành cho người lớn. Nó thường được sử dụng với nhiệm vụ phân loại. Nó có sẵn trong URL này https://archive.ics.uci.edu/ml/machine-learning-databases/adult/adult.data

Dữ liệu được lưu trữ ở định dạng CSV. Tập dữ liệu này bao gồm tám biến phân loại:

Bộ dữ liệu này bao gồm 8 biến phân loại:

  • lớp học nghề
  • giáo dục
  • hôn nhân
  • nghề nghiệp
  • mối quan hệ
  • cuộc đua
  • quan hệ tình dục
  • quê hương

Và, 6 biến liên tục:

  • tuổi
  • fnlwgt
  • giáo dục_num
  • tăng vốn
  • vốn_lỗ
  • giờ_tuần

Phương thức Pandas read_csv()

Để nhập tập dữ liệu CSV, bạn có thể sử dụng đối tượng pd.read_csv(). Đối số cơ bản bên trong là:

Cú pháp gấu trúc read_csv()

pandas.read_csv(filepath_or_buffer,sep=', ',`names=None`,`index_col=None`,`skipinitialspace=False`)
  • đường dẫn tệp hoặc bộ đệm: Đường dẫn hoặc URL chứa dữ liệu
  • tháng chín=', ': Xác định dấu phân cách để sử dụng
  • `tên=Không có`: Đặt tên cho các cột. Nếu tập dữ liệu có mười cột, bạn cần chuyển mười tên
  • `index_col=Không có`: Nếu có, cột đầu tiên được sử dụng làm chỉ mục hàng
  • `skipinitialspace=Sai`: Bỏ qua dấu cách sau dấu phân cách.

Để biết thêm thông tin về read_csv(), vui lòng kiểm tra tài liệu chính thức:

https://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.read_csv.html

Ví dụ về gấu trúc read_csv()

## Import csv
import pandas as pd
## Define path data
COLUMNS = ['age','workclass', 'fnlwgt', 'education', 'education_num', 'marital',
           'occupation', 'relationship', 'race', 'sex', 'capital_gain', 'capital_loss',
           'hours_week', 'native_country', 'label']
PATH = "https://archive.ics.uci.edu/ml/machine-learning-databases/adult/adult.data"
df_train = pd.read_csv(PATH,
                       skipinitialspace=True,
                       names = COLUMNS,
                       index_col=False)
df_train.shape

Đầu ra:

(32561, 15)

Phương thức Pandas groupby()

Một cách dễ dàng để xem dữ liệu là sử dụng phương pháp nhóm. Phương pháp này có thể giúp bạn tóm tắt dữ liệu theo nhóm. Dưới đây là danh sách các phương thức có sẵn với phương thức groupby():

  • đếm: đếm
  • phút: phút
  • tối đa: tối đa
  • nghĩa là: nghĩa là
  • trung vị: trung vị
  • độ lệch chuẩn: sdt
  • vv

Bên trong groupby(), bạn có thể sử dụng cột bạn muốn áp dụng phương thức.

Chúng ta hãy xem xét một nhóm duy nhất với tập dữ liệu người lớn. Bạn sẽ nhận được giá trị trung bình của tất cả các biến liên tục theo loại doanh thu, tức là trên 50k hoặc dưới 50k:

df_train.groupby(['label']).mean()
nhãn tuổi fnlwgt giáo dục_num tăng vốn vốn_lỗ giờ_tuần
<= 50 nghìn 36.783738 190340.86517 9.595065 148.752468 53.142921 38.840210
> 50 nghìn 44.249841 188005.00000 11.611657 4006.142456 195.001530 45.473026

Bạn có thể nhận được độ tuổi tối thiểu theo loại hộ gia đình:

df_train.groupby(['label'])['age'].min()
label
<=50K    17
>50K     19
Name: age, dtype: int64

Bạn cũng có thể nhóm theo nhiều cột. Chẳng hạn, bạn có thể nhận được mức tăng vốn tối đa tùy theo loại hộ gia đình và tình trạng hôn nhân.

df_train.groupby(['label', 'marital'])['capital_gain'].max()				
label  marital              
<=50K  Divorced                 34095
       Married-AF-spouse         2653
       Married-civ-spouse       41310
       Married-spouse-absent     6849
       Never-married            34095
       Separated                 7443
       Widowed                   6849
>50K   Divorced                 99999
       Married-AF-spouse         7298
       Married-civ-spouse       99999
       Married-spouse-absent    99999
       Never-married            99999
       Separated                99999
       Widowed                  99999
Name: capital_gain, dtype: int64

Bạn có thể tạo một biểu đồ theo groupby. Một cách để thực hiện là sử dụng một biểu đồ sau khi nhóm.

Để tạo ra một cốt truyện xuất sắc hơn, bạn sẽ sử dụng unstack() sau Mean() để có cùng chỉ số đa cấp hoặc nối các giá trị theo doanh thu thấp hơn 50k và trên 50k. Trong trường hợp này, ô sẽ có hai nhóm thay vì 14 (2*7).

Nếu bạn sử dụng Jupyter Sổ tay, hãy đảm bảo thêm %matplotlib vào dòng, nếu không, sẽ không có biểu đồ nào được hiển thị

%matplotlib inline
df_plot = df_train.groupby(['label', 'marital'])['capital_gain'].mean().unstack()
df_plot

Ví dụ về phương thức Pandas groupby()

Tổng kết

  • Để nhập tập dữ liệu CSV vào Gấu trúc, bạn có thể sử dụng đối tượng pd.read_csv().
  • Phương thức groupby() có thể giúp bạn tóm tắt dữ liệu theo nhóm.
  • Bạn cũng có thể nhóm theo nhiều cột. Chẳng hạn, bạn có thể nhận được mức tăng vốn tối đa tùy theo loại hộ gia đình và tình trạng hôn nhân.