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
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.