/Python

Data Science For Beginner | Manipulasi Data Excel Menggunakan Python

Cara memanipulasi data Excel menggunakan Python

Tutorial ini adalah lanjutan dari tutorial pertama yaitu tentang bagaimana cara membaca file excel menggunakan python yang telah kita pelajari sebelumnya.

Jika teman-teman baru saja mengunjungi tutorial ini dan masih dalam tahap pemula, sebaiknya membaca dulu tutorial sebelumnya di sini agar lebih mudah mengikuti alur dari tutorial ini.


Table of contents


Warming up

Setelah kita belajar basic untuk membaca file excel menggunakan python, sekarang kita akan mencoba memanipulasi sebuah data pada excel menggunakan python.

Untuk mendapatkan informasi yang lebih spesifik, kita harus tahu data apa saja yang kita butuhkan dari file excel tersebut untuk mempermudah proses manipulasi.

>>> import json
>>> from openpyxl import load_workbook
>>> data = load_workbook(filename="100_data_excel.xlsx")
>>> sheet = data.active
>>> sheet
<Worksheet "Sheet1">
>>> for value in sheet.iter_rows(min_row=1, max_row=1, values_only=True):
...     print(value)
... 
(0, 'First Name', 'Last Name', 'Gender', 'Country', 'Age', 'Date', 'Id')
  • Pada contoh di atas, kita ingin melihat value apa sajakah yang ada pada file excel kita, yaitu value yang berada pada row 1 kolom 1, dan mendapatkan hasil:
0, 'First Name', 'Last Name', 'Gender', 'Country', 'Age', 'Date', 'Id'

Cara membaca data pada rows column tertentu

Selanjutnya kita ingin membaca apa data apa saja kah yang ada pada row 90 menggunakan metode pengulangan / iterasi, dan mendapatkan hasil yang diinginkan, yaitu sebuah value dari row ke 90.

>>> for value in sheet.iter_rows(min_row=91, 
                                 max_row=91, 
                                 values_only=True):
...     print(value)
... 
(90, 'Chase', 'Karner', 'Male', 'United States', 37, '15/10/2017', 2154)

Question: Mengapa kita memilih row ke 91 jika kita ingin mendapatkan data pada row ke 90? Answer: Karena row pertama adalah value dari header.


Contoh lain untuk mendapatkan data yang lebih spesifik, kita bisa menggunakan parameter seperti berikut:

>>> for value in sheet.iter_rows(min_row=90, 
                                 min_col=2, 
                                 max_col=5, 
                                 values_only=True):
    print(value)


('Shanice', 'Mccrystal', 'Female', 'United States')
('Chase', 'Karner', 'Male', 'United States')
('Tommie', 'Underdahl', 'Male', 'United States')
('Dorcas', 'Darity', 'Female', 'United States')
('Angel', 'Sanor', 'Male', 'France')
('Willodean', 'Harn', 'Female', 'United States')
('Weston', 'Martina', 'Male', 'United States')
('Roma', 'Lafollette', 'Female', 'United States')
('Felisa', 'Cail', 'Female', 'United States')
('Demetria', 'Abbey', 'Female', 'United States')
('Jeromy', 'Danz', 'Male', 'United States')
('Rasheeda', 'Alkire', 'Female', 'United States')

Pada baris kode di atas, kita ingin mendapatkan data yang lebih spesifik dimulai dari row ke 90, kolom ke 2 hingga ke 5, maka kita akan mendapatkan data seperti di atas, cukup mudah bukan?.

Sekarang mari kita cocokkan data tersebut apakah seusuai?

Tutorial manipulasi excel dengan menggunakan python

Dan yep!. data tersebut sesuai, menarik sekali bukan?.

Cara memanipulasi data excel menjadi JSON

Selanjutnya adalah kita akan memasukkan data tersebut ke dalam dict menggunakan iterasi pada python agar pengolahan data menjadi lebih mudah.

dataku = {}
for row in sheet.iter_rows(min_row=2,
                           max_row=5,
                           min_col=2,
                           max_col=8, 
                           values_only=True):
    data_id = row[0]
    data_baru = {
        "nama depan": row[0],
        "nama belakang": row[1],
        "kelamin": row[2],
        "negara": row[3],
        "usia": row[4],
        "tanggal join": row[5],
        "id": row[6]
    }
    dataku[data_id] = data_baru
print(json.dumps(dataku))

Pada script di atas kita menggunakan indexing pada tuple untuk mendapatkan data dari row pertama hingga row ke 4, kemudian menyimpan data tersebut ke dalam sebuah python dict kemudian melakukan convert menjadi json menggunakan metode json.dumps yang telah kita import di atas pertama kali.

Jika script di atas kita jalankan maka akan mendapatkan hasil seperti di bawah ini:

{
   "Dulce":{
      "nama depan":"Dulce",
      "nama belakang":"Abril",
      "kelamin":"Female",
      "negara":"United States",
      "usia":32,
      "tanggal join":"15/10/2017",
      "id":1562
   },
   "Mara":{
      "nama depan":"Mara",
      "nama belakang":"Hashimoto",
      "kelamin":"Female",
      "negara":"Great Britain",
      "usia":25,
      "tanggal join":"16/08/2016",
      "id":1582
   },
   "Philip":{
      "nama depan":"Philip",
      "nama belakang":"Gent",
      "kelamin":"Male",
      "negara":"France",
      "usia":36,
      "tanggal join":"21/05/2015",
      "id":2587
   },
   "Kathleen":{
      "nama depan":"Kathleen",
      "nama belakang":"Hanner",
      "kelamin":"Female",
      "negara":"United States",
      "usia":25,
      "tanggal join":"15/10/2017",
      "id":3549
   }
}

Data di atas adalah data JSON yang berhasil kita convert.

Mari kita cocokkan data tersebut dengan file excel kita, apakah telah sesuai?

cara manipulasi data di microsoft excel menggunakan python

And yep, that’s correct!.


Export hasil convert menjadi JSON file

Kita juga dapat menyimpan data json di atas menjadi sebuah file baru yang kemudian bisa kita import ke dalam sebuah database.

Tambahkan kode berikut di bawah baris kode ini

# menampung hasil convert json ke dalam variable X
>>> x = json.dumps(dataku)

# simple swap variable
>>> simpan = x

# menyimpan data ke dalam folder kita
>>> with open('data_baru.json', 'w') as json_file:
        json.dump(simpan, json_file)

Dari script di atas, kita telah berhasil menyimpan hail output tadi menjadi sebuah file JSON baru.

Jika kita melihat ke dalam working directory, maka kita akan menemukan file bernama data_baru.json, menarik bukan?

Lalu mengapa jason JSON? Karena dengan JSON kita bisa lebih mudah untuk melakukan import ke dalam sebuah database seperti PostGreSQL dan MongoDB.


Conclusion

Menguasai dasar-dasar pengolahan data sangatlah berguna bagi seorang backend engineer apalagi jika kita seorang data science yang akan selalu berkutat dengan raw data dengan jumlah yang sangat banyak (big data).

Oleh karenanya wajib hukumnya kita mempelajari dasar-dasar pengolahan data tersebut.

Pertanyaan serta kritik dan saran terkait tutorial manipulasi data excel menggunakan python ini silahkan tinggalkan di kolom komentar di bawah.

Mari kita bersama berdiskusi.


Tags: #python

Subscribe to noTnoob Dev

Get the latest posts delivered right to your inbox

iColdPlayer

iColdPlayer

Backend Developer | Python, Django, Linux & Rails

Read More