Dalam tutorial ini, anda akan belajar:
- Import CSV
- Berkumpulan
Import CSV
Semasa tutorial TensorFlow, anda akan menggunakan set data dewasa. Ia sering digunakan dengan tugas klasifikasi. Ia terdapat dalam URL ini https://archive.ics.uci.edu/ml/machine-learning-databases/adult/adult.data
Data disimpan dalam format CSV. Set data ini merangkumi lapan pemboleh ubah kategori:
Set data ini merangkumi lapan pemboleh ubah kategori:
- kelas kerja
- pendidikan
- perkahwinan
- pekerjaan
- hubungan
- perlumbaan
- seks
- negara asal
lebih-lebih lagi, enam pemboleh ubah berterusan:
- umur
- fnlwgt
- pendidikan_num
- modal_mendapat
- kerugian_ modal
jam_ minggu
Untuk mengimport set data CSV, anda boleh menggunakan objek pd.read_csv (). Hujah asas di dalamnya adalah:
Sintaks:
pandas.read_csv(filepath_or_buffer,sep=', ',`names=None`,`index_col=None`,`skipinitialspace=False`)
- filepath_or_buffer: Laluan atau URL dengan data
- sep = ',': Tentukan pembatas yang akan digunakan
- `names = None`: Namakan lajur. Sekiranya set data mempunyai sepuluh lajur, anda perlu memberikan sepuluh nama
- `index_col = None`: Jika ya, lajur pertama digunakan sebagai indeks baris
- `skipinitialspace = False`: Langkau ruang selepas pembatas.
Untuk maklumat lebih lanjut mengenai readcsv (), sila periksa dokumentasi rasmi
https://pandas.pydata.org/pandas-docs/stable/generated/pandas.read_csv.html.
Pertimbangkan 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
Pengeluaran:
(32561, 15)
Berkumpulan
Kaedah mudah untuk melihat data adalah dengan menggunakan kaedah kumpulan. Kaedah ini dapat membantu anda merangkum data mengikut kumpulan. Berikut adalah senarai kaedah yang tersedia dengan kumpulan:
- membilang: mengira
- min: min
- maks: maks
- bermaksud: bermaksud
- median: median
- sisihan piawai: sdt
- dan lain-lain
Di dalam kumpulan (), anda boleh menggunakan lajur yang anda mahu gunakan kaedahnya.
Mari kita lihat satu kumpulan dengan kumpulan data dewasa. Anda akan mendapat min bagi semua pemboleh ubah berterusan mengikut jenis pendapatan, iaitu, melebihi 50k atau di bawah 50k
df_train.groupby(['label']).mean()
umur | fnlwgt | pendidikan_num | modal_mendapat | kerugian_ modal | jam_ minggu | |
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 boleh mendapatkan umur minimum mengikut jenis isi rumah
df_train.groupby (['label']) ['umur'] min. ()
label<=50K 17>50K 19Name: age, dtype: int64
Anda juga boleh mengumpulkan mengikut beberapa lajur. Sebagai contoh, anda dapat memperoleh keuntungan modal maksimum mengikut jenis rumah tangga dan status perkahwinan.
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 boleh membuat plot mengikut kumpulan. Salah satu cara untuk melakukannya adalah dengan menggunakan plot selepas pengelompokan.
Untuk membuat plot yang lebih baik, anda akan menggunakan unstack () selepas mean () sehingga anda mempunyai indeks bertingkat yang sama, atau anda bergabung dengan nilai dengan pendapatan lebih rendah dari 50k dan di atas 50k. Dalam kes ini, plot akan mempunyai dua kumpulan dan bukannya 14 (2 * 7).
Sekiranya anda menggunakan Jupyter Notebook, pastikan untuk menambahkan% matplotlib sebaris, jika tidak, plot tidak akan dipaparkan
%matplotlib inlinedf_plot = df_train.groupby(['label', 'marital'])['capital_gain'].mean().unstack()df_plot