Nhập Dữ liệu CSV bằng Pandas.read_csv ()

Mục lục:

Anonim

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