Dalam tutorial ini, Anda akan mempelajari:
- Impor CSV
- Groupby
Impor CSV
Selama tutorial TensorFlow, Anda akan menggunakan kumpulan data dewasa. Ini sering digunakan dengan tugas klasifikasi. Ini tersedia di URL ini https://archive.ics.uci.edu/ml/machine-learning-databases/adult/adult.data
Data disimpan dalam format CSV. Kumpulan data ini mencakup delapan variabel kategori:
Kumpulan data ini mencakup delapan variabel kategori:
- kelas kerja
- pendidikan
- pernikahan
- pendudukan
- hubungan
- ras
- seks
- negara Asal
Selain itu, enam variabel kontinu:
- usia
- fnlwgt.dll
- education_num
- keuntungan dalam bentuk uang
- capital_loss
hours_week
Untuk mengimpor kumpulan data CSV, Anda dapat menggunakan objek pd.read_csv (). Argumen dasar di dalamnya adalah:
Sintaksis:
pandas.read_csv(filepath_or_buffer,sep=', ',`names=None`,`index_col=None`,`skipinitialspace=False`)
- filepath_or_buffer: Jalur atau URL dengan data
- sep = ',': Tentukan pembatas yang akan digunakan
- `names = None`: Memberi nama kolom. Jika kumpulan data memiliki sepuluh kolom, Anda harus meneruskan sepuluh nama
- `index_col = None`: Jika ya, kolom pertama digunakan sebagai indeks baris
- `skipinitialspace = False`: Melewati spasi setelah pembatas.
Untuk informasi lebih lanjut tentang readcsv (), silakan periksa dokumentasi resmi
https://pandas.pydata.org/pandas-docs/stable/generated/pandas.read_csv.html.
Perhatikan Contoh berikut
## 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
Keluaran:
(32561, 15)
Groupby
Cara mudah untuk melihat data adalah dengan menggunakan metode groupby. Metode ini dapat membantu Anda meringkas data menurut kelompok. Di bawah ini adalah daftar metode yang tersedia dengan groupby:
- hitung: hitung
- min: min
- maks: maks
- maksud: berarti
- median: median
- deviasi standar: sdt
- dll
Di dalam groupby (), Anda bisa menggunakan kolom yang ingin Anda terapkan metode.
Mari kita lihat satu pengelompokan dengan kumpulan data dewasa. Anda akan mendapatkan rata-rata dari semua variabel kontinu menurut jenis pendapatan, yaitu di atas 50k atau di bawah 50k
df_train.groupby(['label']).mean()
usia | fnlwgt.dll | education_num | keuntungan dalam bentuk uang | capital_loss | hours_week | |
label | ||||||
<= 50K | 36.783738 | 190340.86517 | 9.595065 | 148,752468 | 53.142921 | 38.840210 |
> 50K | 44.249841 | 188005,00000 | 11.611657 | 4006.142456 | 195.001530 | 45.473026 |
Anda bisa mendapatkan usia minimum berdasarkan jenis rumah tangga
df_train.groupby (['label']) ['age']. min ()
label<=50K 17>50K 19Name: age, dtype: int64
Anda juga dapat mengelompokkan berdasarkan beberapa kolom. Misalnya, Anda bisa mendapatkan capital gain yang maksimal sesuai dengan jenis rumah tangga dan status perkawinan.
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
Anda dapat membuat plot setelah groupby. Salah satu cara untuk melakukannya adalah dengan menggunakan plot setelah pengelompokan.
Untuk membuat plot yang lebih baik, Anda akan menggunakan unstack () setelah mean () sehingga Anda memiliki indeks bertingkat yang sama, atau Anda menggabungkan nilai dengan pendapatan yang lebih rendah dari 50k dan di atas 50k. Dalam kasus ini, plot akan memiliki dua kelompok, bukan 14 (2 * 7).
Jika Anda menggunakan Notebook Jupyter, pastikan untuk menambahkan% matplotlib sebaris, jika tidak, plot tidak akan ditampilkan
%matplotlib inlinedf_plot = df_train.groupby(['label', 'marital'])['capital_gain'].mean().unstack()df_plot