Trong hướng dẫn này, bạn sẽ học:
- Nhập CSV
- Groupby
Nhập CSV
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:
Tập dữ liệu này bao gồm tám 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
- tình dục
- quê hương
hơn nữa, sáu biến liên tục:
- tuổi tác
- fnlwgt
- giáo dục_num
- tăng vốn
- capital_loss
giờ_ tuần
Để 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:
pandas.read_csv(filepath_or_buffer,sep=', ',`names=None`,`index_col=None`,`skipinitialspace=False`)
- filepath_or_buffer: Đường dẫn hoặc URL chứa dữ liệu
- sep = ',': Xác định dấu phân cách để sử dụng
- `names = None`: Đặ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 = None`: Nếu có, cột đầu tiên được sử dụng làm chỉ mục hàng
- `jumpinitialspace = False`: Bỏ qua dấu cách sau dấu phân cách.
Để biết thêm thông tin về readcsv (), vui lòng kiểm tra tài liệu chính thức
https://pandas.pydata.org/pandas-docs/stable/generated/pandas.read_csv.html.
Hãy xem xét ví dụ sau
## Import csvimport pandas as pd## Define path dataCOLUMNS = ['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)
Groupby
Một cách dễ dàng để xem dữ liệu là sử dụng phương pháp theo 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 pháp có sẵn với groupby:
- count: đếm
- min: min
- max: tối đa
- mean: có nghĩa là
- median: trung bình
- độ lệch chuẩn: sdt
- Vân vân
Bên trong groupby (), bạn có thể sử dụng cột mà bạn muốn áp dụng phương thức.
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()
tuổi tác | fnlwgt | giáo dục_num | tăng vốn | capital_loss | giờ_ tuần | |
nhã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 19Name: age, dtype: int64
Bạn cũng có thể nhóm theo nhiều cột. Ví dụ, 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 34095Married-AF-spouse 2653Married-civ-spouse 41310Married-spouse-absent 6849Never-married 34095Separated 7443Widowed 6849>50K Divorced 99999Married-AF-spouse 7298Married-civ-spouse 99999Married-spouse-absent 99999Never-married 99999Separated 99999Widowed 99999Name: capital_gain, dtype: int64
Bạn có thể tạo một cốt truyện sau đây theo nhóm. Một cách để làm điều đó là sử dụng một âm mư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 unsack () sau mean () để bạn có cùng một chỉ số đa cấp hoặc bạn kết hợp các giá trị theo doanh thu thấp hơn 50k và trên 50k. Trong trường hợp này, cốt truyện sẽ có hai nhóm thay vì 14 (2 * 7).
Nếu bạn sử dụng Máy tính xách tay Jupyter, hãy đảm bảo thêm% matplotlib nội dòng, nếu không, không có âm mưu nào được hiển thị
%matplotlib inlinedf_plot = df_train.groupby(['label', 'marital'])['capital_gain'].mean().unstack()df_plot