Breaking

LightBlog

Senin, 15 Oktober 2018

Generate Data Set dengan NumPy

Pada artikel sebelumnya yaitu Export DataFrame ke Format CSV kita telah memcoba membuat data set sendiri. Dengan bantuan library NumPy maka kita dimudahkan untuk menghasilkan duplikasi data secara random sehingga menghasilkan data set yang besar.
Anggaplah kali ini kita ingin membuat data set sebanyak 100 data nama dan jumlah bayi yang lahir pada tahun 1992. Seandainya kita membuat data set secara manual tentunya akan sangat lama dan sulit dan NumPy adalah solusi untuk menyederhanakan masalah itu. Berikut adalah cara Generate Data Set dengan NumPy.
import library pandas dan NumPy beserta fungsi yang akan digunakan
In [1]: from pandas import DataFrame
In [2]: import pandas as pd
In [3]: from numpy import random

Awalnya kita akan membuat 5 nama bayi dan jumlahnya seperti pada Export DataFrame ke Format CSV selanjutnya kita generate data set sehingga terduplikat menjadi 100 nama.
In [4]: nama = ['faqih','dana','iin','andi','wati']
In [5]: random_nama = [nama[random.randint(low=0,high=len(nama))] for i in range
(100)]

Ketika kita ketik random_nama maka akan muncul 100 nama. untuk melihat 10 record pertama cobalah tulis
In [6]: random_nama[:10]
Out[6]: ['andi', 'faqih', 'dana', 'iin', 'iin', 'iin', 'wati', 'wati', 'andi', 'faqih']

Untuk jumlah bayi kita juga akan melakukan generate 100 data dengan angka tertinggi 1000
In [7]: lahir = [random.randint(low=0,high=1000) for i in range(100)]
 
In [8]: lahir[:10]
Out[8]: [83, 387, 172, 38, 248, 333, 487, 558, 865, 273]

Menggabungkan list nama dan lahir dengan fungsi zip dan menampilkan 10 baris
In [9]: BayiDataSet = list(zip(random_nama,lahir))
 
In [10]: BayiDataSet[:10]
Out[10]:
[('andi', 83),
 ('faqih', 387),
 ('dana', 172),
 ('iin', 38),
 ('iin', 248),
 ('iin', 333),
 ('wati', 487),
 ('wati', 558),
 ('andi', 865),
 ('faqih', 273)]

Simpan dalam bentuk DataFrame
In [11]: frame = pd.DataFrame(data = BayiDataSet, columns=['random_nama','lahir'])
In [12]: frame[:10]
Out[12]:
  random_nama  lahir
0        andi     83
1       faqih    387
2        dana    172
3         iin     38
4         iin    248
5         iin    333
6        wati    487
7        wati    558
8        andi    865
9       faqih    273

Simpan dalam bentuk CSV
In [13]: frame.to_csv('lahir1992.csv')

Tidak ada komentar:

Posting Komentar

Adbox