Anda di halaman 1dari 17

1

MODUL PERKULIAHAN

W542100001 –
Analisis Data
Akses File

Abstrak Sub-CPMK

Membaca dan menyimpan Sub-CPMK 3.5.


data dalam format teks, csv, Pengolahan Data dengan Bahasa
Excel dan JSON. Python. Penyimpanan data dalam
beragam format file.

11.1. Pengantar
Saya baru-baru ini menemukan banyak calon ilmuwan data yang bertanya-tanya
mengapa begitu sulit untuk mengimpor format file yang berbeda dengan Python.
Sebagian besar dari Anda mungkin akrab dengan fungsi read_csv() di Pandas tetapi hal-
hal menjadi rumit dari sana.
Bagaimana cara membaca file JSON dengan Python? Bagaimana dengan file gambar?
Bagaimana dengan banyak file sekaligus? Ini adalah pertanyaan yang harus Anda
ketahui jawabannya – tetapi mungkin sulit untuk dipahami pada awalnya.
Dan menguasai format file ini sangat penting untuk kesuksesan Anda di industri ilmu data.
Anda akan bekerja dengan semua jenis format file yang dikumpulkan dari berbagai
sumber data – itulah realitas era digital modern yang kita jalani.

Jadi dalam artikel ini, saya akan memperkenalkan Anda pada beberapa format file paling
umum yang harus diketahui oleh seorang ilmuwan data. Kami akan belajar cara
membacanya dengan Python sehingga Anda siap sebelum memasuki medan perang!
Saya sangat merekomendasikan untuk mengambil kursus ' Python untuk Ilmu Data '
populer kami jika Anda baru mengenal bahasa pemrograman Python. Ini gratis dan
bertindak sebagai titik awal yang sempurna dalam perjalanan Anda.

11.2. Mengekstrak dari File Zip


File zip adalah hadiah dari dewa pengkodean. Seolah-olah mereka telah jatuh dari surga
untuk menghemat ruang dan waktu penyimpanan kita. Pemrogram jadul dan pengguna
komputer pasti akan berhubungan dengan cara kita dulu mengcopy file instalasi raksasa
dalam format Zip!
Namun secara teknis, ZIP adalah format file arsip yang mendukung kompresi data
lossless. Ini berarti Anda tidak perlu khawatir data Anda hilang dalam proses kompresi-
dekompresi (Silicon Valley, siapa saja?).

2021 Analisis Data


2 Eko Ihsanto, Dr, Ir, M.Eng
Biro Bahan Ajar E-learning dan MKCU
http://pbael.mercubuana.ac.id/
Di sini, mari kita lihat bagaimana Anda dapat membuka folder ZIP dengan Python. Untuk
ini, Anda memerlukan pustaka file zip dengan Python.
Saya telah zip semua file yang diperlukan untuk artikel ini di folder ZIP terpisah, jadi mari
kita ekstrak!
# import zipfile
from zipfile import ZipFile
# path to the zipfile
file = './Importing files.zip'
# read zipfile and extract
contents
with ZipFile (file, 'r') as zip:
zip.printdir()
zip.extractall()

Setelah Anda menjalankan kode di atas, Anda dapat melihat file yang diekstrak di folder
yang sama dengan skrip Python Anda:

11.3. Membaca File Teks


File teks adalah salah satu format file yang paling umum untuk menyimpan data. Python
membuatnya sangat mudah untuk membaca data dari file teks.
Python menyediakan fungsi open() untuk membaca file yang mengambil jalur file dan
mode akses file sebagai parameternya. Untuk membaca file teks, mode akses file adalah
'r'. Saya telah menyebutkan mode akses lainnya di bawah ini:
 'w' – menulis ke file

2021 Analisis Data


3 Eko Ihsanto, Dr, Ir, M.Eng
Biro Bahan Ajar E-learning dan MKCU
http://pbael.mercubuana.ac.id/
 'r+' atau 'w+' – membaca dan menulis ke file
 'a' – menambahkan ke file yang sudah ada
 'a+' – tambahkan ke file setelah membaca
Python memberi kita tiga fungsi untuk membaca data dari file teks:
1. read(n) – Fungsi ini membaca n byte dari file teks atau membaca informasi
lengkap dari file jika tidak ada nomor yang ditentukan. Cukup pintar untuk
menangani pembatas ketika bertemu satu dan memisahkan kalimat
2. readline(n) – Fungsi ini memungkinkan Anda untuk membaca n byte dari file
tetapi tidak lebih dari satu baris informasi
3. readlines() – Fungsi ini membaca informasi lengkap dalam file tetapi tidak seperti
read() , itu tidak mengganggu karakter pembatas dan mencetaknya juga dalam
format daftar
Mari kita lihat bagaimana fungsi-fungsi ini berbeda dalam membaca file teks:
# read text file
with open(r'./Importing files/Analytics Vidhya.txt','r') as
f:
print(f.read())

Fungsi read() mengimpor semua data dalam file dalam bentuk terstruktur yang benar.
# read text file
with open(r'./Importing files/Analytics Vidhya.txt','r') as
f:
print(f.read(10))

Dengan memberikan nomor dalam fungsi read() , kami dapat mengekstrak jumlah byte
yang ditentukan dari file.
# read text file
with open(r'./Importing files/Analytics Vidhya.txt','r') as
f:
print(f.readline())

2021 Analisis Data


4 Eko Ihsanto, Dr, Ir, M.Eng
Biro Bahan Ajar E-learning dan MKCU
http://pbael.mercubuana.ac.id/
Menggunakan readline(), hanya satu baris dari file teks yang diekstraksi.
# read text file
with open(r'./Importing files/Analytics Vidhya.txt','r') as
f:
print(f.readlines())

Di sini, fungsi readline() mengekstrak semua data file teks dalam format daftar.

11.4. Membaca File CSV


Format CSV lama yang bagus. File CSV (atau Nilai Terpisah Koma) adalah jenis file
paling umum yang pernah digunakan oleh ilmuwan data. File-file ini menggunakan ","
sebagai pembatas untuk memisahkan nilai dan setiap baris dalam file CSV adalah
catatan data.
Ini berguna untuk mentransfer data dari satu aplikasi ke aplikasi lain dan mungkin
merupakan alasan mengapa mereka begitu umum di dunia ilmu data.
Jika Anda melihatnya di Notepad, Anda akan melihat bahwa nilainya dipisahkan dengan
koma:

The Panda perpustakaan membuatnya sangat mudah untuk membaca file CSV
menggunakan read_csv () fungsi:

# import pandas
import pandas as pd
# read csv file into a DataFrame
df = pd.read_csv(r'./Importing
files/Products.csv')
# display DataFrame
df

2021 Analisis Data


5 Eko Ihsanto, Dr, Ir, M.Eng
Biro Bahan Ajar E-learning dan MKCU
http://pbael.mercubuana.ac.id/
Tetapi CSV dapat mengalami masalah jika nilainya mengandung koma. Hal ini dapat
diatasi dengan menggunakan pembatas yang berbeda untuk memisahkan informasi
dalam file, seperti '\t' atau ';', dll. Ini juga dapat diimpor dengan fungsi read_csv() dengan
menentukan pembatas dalam nilai parameter seperti yang ditunjukkan di bawah ini
membaca file TSV (Tab Separated Values):

import pandas as pd
df = pd.read_csv(r'./Importing files/Employee.txt',delimiter='\
t')
df

11.5. Membaca File Excel


Sebagian besar dari Anda akan cukup akrab dengan file Excel dan mengapa mereka
begitu banyak digunakan untuk menyimpan data tabular. Jadi saya akan langsung ke
kode dan mengimpor file Excel dengan Python menggunakan Pandas.
Pandas memiliki fungsi yang sangat berguna yang disebut read_Excel() untuk membaca
file Excel:

# read Excel file into a DataFrame


df = pd.read_excel(r'./Importing
files/World_city.xlsx')
# print values
df

2021 Analisis Data


6 Eko Ihsanto, Dr, Ir, M.Eng
Biro Bahan Ajar E-learning dan MKCU
http://pbael.mercubuana.ac.id/
Tetapi file Excel dapat berisi banyak lembar, bukan? Jadi bagaimana kita bisa
mengaksesnya?
Untuk ini, kita dapat menggunakan fungsi ExcelFile() Pandas untuk mencetak nama
semua lembar dalam file:

# read Excel sheets in pandas


xl = pd.ExcelFile(r'./Importing
files/World_city.xlsx')
# print sheet name
xl.sheet_names

Setelah melakukan itu, kita dapat dengan mudah membaca data dari sheet mana pun
yang kita inginkan dengan memberikan namanya di parameter sheet_name di fungsi
read_Excel() :

# read Europe sheet


df = pd.read_excel(r'./Importing
files/World_city.xlsx',sheet_name='Europe')
df

11.6. Mengimpor dari Database


Saat Anda mengerjakan proyek dunia nyata, Anda perlu menghubungkan program Anda
ke database untuk mengambil data. Tidak ada jalan lain (itulah sebabnya mempelajari
SQL adalah bagian penting dari perjalanan ilmu data Anda).

2021 Analisis Data


7 Eko Ihsanto, Dr, Ir, M.Eng
Biro Bahan Ajar E-learning dan MKCU
http://pbael.mercubuana.ac.id/
Data dalam basis data disimpan dalam bentuk tabel dan sistem ini dikenal sebagai
sistem manajemen basis data relasional (RDBMS) . Namun, menghubungkan ke
RDBMS dan mengambil data darinya bisa menjadi tugas yang cukup menantang. Inilah
kabar baiknya – kita dapat melakukannya dengan mudah menggunakan modul bawaan
Python!
Salah satu RDBMS yang paling populer adalah SQLite. Ini memiliki banyak poin plus:
1. Basis data yang ringan dan karenanya mudah digunakan dalam perangkat lunak
yang disematkan
2. 35% lebih cepat membaca dan menulis dibandingkan dengan Sistem File
3. Tidak diperlukan server perantara. Membaca dan menulis dilakukan langsung dari
file database pada disk
4. Format file database lintas platform. Ini berarti file yang ditulis pada satu mesin
dapat disalin dan digunakan pada mesin yang berbeda dengan arsitektur yang
berbeda
Ada banyak lagi alasan untuk popularitasnya. Tapi untuk sekarang, mari kita terhubung
dengan database SQLite dan mengambil data kita!
Anda perlu mengimpor modul sqlite3 untuk menggunakan SQLite. Kemudian, Anda perlu
mengerjakan langkah-langkah berikut untuk mengakses data Anda:
1. Buat koneksi dengan database connect() . Anda harus memberikan nama
database Anda untuk mengaksesnya. Ini mengembalikan objek Connection
2. Setelah Anda selesai melakukannya, Anda perlu membuat objek kursor
menggunakan fungsi cursor() . Ini akan memungkinkan Anda untuk
mengimplementasikan perintah SQL yang dapat digunakan untuk memanipulasi
data Anda
3. Anda dapat menjalankan perintah dalam SQL dengan memanggil fungsi execute()
pada objek kursor. Karena kami mengambil data dari database, kami akan
menggunakan pernyataan SELECT dan menyimpan kueri dalam suatu objek
4. Simpan data dari objek ke dalam kerangka data dengan memanggil fetchone() ,
untuk satu baris, atau fecthall() , untuk semua baris, berfungsi pada objek
Dan begitu saja, Anda telah mengambil data dari database ke dalam kerangka data
Pandas!
Praktik yang baik adalah menyimpan/melakukan transaksi Anda menggunakan fungsi
commit() bahkan jika Anda hanya membaca data.

import pandas as pd
import sqlite3
# open engine connection
con=sqlite3.connect('./Importing

2021 Analisis Data


8 Eko Ihsanto, Dr, Ir, M.Eng
Biro Bahan Ajar E-learning dan MKCU
http://pbael.mercubuana.ac.id/
files/sample_test.db')
# create a cursor object
cur = con.cursor()
# Perform query: rs
rs = cur.execute('select * from TEST')
# Save results of the query to DataFrame: df
df = pd.DataFrame(rs.fetchall())
# Close connection
con.commit()
# Print head of DataFrame df
df

Anda dapat membaca lebih lanjut tentang SQLite dengan Python dari dokumentasi resmi

11.7. File JSON


File JSON (JavaScript Object Notation) ringan dan dapat dibaca manusia untuk
menyimpan dan bertukar data. Sangat mudah bagi mesin untuk mengurai dan
menghasilkan file-file ini dan didasarkan pada bahasa pemrograman JavaScript.
File JSON menyimpan data dalam {} mirip dengan cara kamus menyimpannya dalam
Python. Tetapi manfaat utama mereka adalah mereka tidak bergantung pada bahasa,
artinya mereka dapat digunakan dengan bahasa pemrograman apa pun – baik itu Python,
C, atau bahkan Java!
Ini adalah tampilan file JSON:

2021 Analisis Data


9 Eko Ihsanto, Dr, Ir, M.Eng
Biro Bahan Ajar E-learning dan MKCU
http://pbael.mercubuana.ac.id/
Python menyediakan modul json untuk membaca file JSON. Anda dapat membaca file
JSON seperti file teks sederhana. Namun, fungsi baca, dalam hal ini, digantikan oleh
fungsi json.load() yang mengembalikan kamus JSON.
Setelah Anda selesai melakukannya, Anda dapat dengan mudah mengubahnya menjadi
kerangka data Pandas menggunakan fungsi pandas.DataFrame() :

import json
# open json file
with open('./Importing files/sample_json.json','r') as
file:
data = json.load(file)
# json dictionary
print(type(data))
# loading into a DataFrame
df_json = pd.DataFrame(data)
df_json

Tetapi Anda bahkan dapat memuat file JSON secara langsung ke dalam kerangka data
menggunakan fungsi pandas.read_json() seperti yang ditunjukkan di bawah ini:

# reading directly into a DataFrame usind pd.read_json()


path = './Importing files/sample_json.json'
df = pd.read_json(path)
df

11.8. Membaca File Pickle


File pickle digunakan untuk menyimpan bentuk serial objek Python. Ini berarti objek
seperti daftar, set, tuple, dict, dll. dikonversi ke aliran karakter sebelum disimpan di disk.
Ini memungkinkan Anda untuk terus bekerja dengan objek nanti. Ini sangat berguna
ketika Anda telah melatih model pembelajaran mesin Anda dan ingin menyimpannya
untuk membuat prediksi nanti.

2021 Analisis Data


10 Eko Ihsanto, Dr, Ir, M.Eng
Biro Bahan Ajar E-learning dan MKCU
http://pbael.mercubuana.ac.id/
Jadi, jika Anda membuat serial file sebelum menyimpannya, Anda perlu melakukan de-
serialize sebelum Anda menggunakannya dalam program Python Anda. Ini dilakukan
dengan menggunakan fungsi pickle.load() dalam modul pickle. Tetapi ketika Anda
membuka file pickle dengan fungsi open() Python , Anda perlu menyediakan parameter
'rb' untuk membaca file biner.

2021 Analisis Data


11 Eko Ihsanto, Dr, Ir, M.Eng
Biro Bahan Ajar E-learning dan MKCU
http://pbael.mercubuana.ac.id/
import pickle
with open('./Importing files/sample_pickle.pkl','rb') as
file:
data = pickle.load(file)
# pickle data
print(type(data))
df_pkl = pd.DataFrame(data)
df_pkl

11.9. Web Scraping


Web Scraping mengacu pada penggalian sejumlah besar data dari web. Ini penting bagi
seorang ilmuwan data yang harus menganalisis data dalam jumlah besar.
Python menyediakan modul yang sangat berguna yang disebut permintaan untuk
mengambil data dari situs web mana pun. Fungsi request.get() mengambil URL sebagai
parameternya dan mengembalikan respons HTML sebagai outputnya. Cara kerjanya
diringkas dalam langkah-langkah berikut:
1. Ini mengemas permintaan Dapatkan untuk mengambil data dari halaman web
2. Mengirim permintaan ke server
3. Menerima respons HTML dan menyimpannya di objek respons
Untuk contoh ini, saya ingin menunjukkan sedikit tentang kota saya – Delhi. Jadi, saya
akan mengambil data dari halaman Wikipedia di Delhi:

import requests
# url =
"https://weather.com/en-IN/weather/tenday/l/aff9460b9160c73ff01769fd83ae82cf37cb
27fb7eb73c70b91257d413147b69"
url = "https://en.wikipedia.org/wiki/Delhi"
# response object
resp = requests.get(url)
# using text attribute of the response object, return the HTML of webpage as string
text = resp.text
print(text)

2021 Analisis Data


12 Eko Ihsanto, Dr, Ir, M.Eng
Biro Bahan Ajar E-learning dan MKCU
http://pbael.mercubuana.ac.id/
Tetapi seperti yang Anda lihat, datanya tidak terlalu mudah dibaca. Struktur seperti pohon
dari konten HTML yang diambil oleh permintaan kami sangat tidak dapat dipahami. Untuk
meningkatkan keterbacaan ini, Python memiliki perpustakaan luar biasa lainnya yang
disebut BeautifulSoup.
BeautifulSoup adalah pustaka Python untuk menguraikan struktur HTML seperti pohon
dan mengekstraksi data dari dokumen HTML.
Baiklah, mari kita lihat keajaiban BeautifulSoup.
Untuk membuatnya berfungsi, kita perlu meneruskan respons teks dari objek permintaan
ke BeautifulSoup() yang membuat objeknya sendiri – “sup” dalam kasus ini. Memanggil
prettify() pada objek BeautifulSoup mem-parsing struktur seperti pohon dari dokumen
HTML:

import requests
from bs4 import BeautifulSoup
# url
# url =
"https://weather.com/en-IN/weather/tenday/l/aff9460b9160c73ff01769fd83ae82cf37cb
27fb7eb73c70b91257d413147b69"
url = "https://en.wikipedia.org/wiki/Delhi"
# Package the request, send the request and catch the response: r
r = requests.get(url)
# Extracts the response as html: html_doc
html_doc = r.text
# Create a BeautifulSoup object from the HTML: soup
soup = BeautifulSoup(html_doc)
# Print the response
print(soup.prettify())

2021 Analisis Data


13 Eko Ihsanto, Dr, Ir, M.Eng
Biro Bahan Ajar E-learning dan MKCU
http://pbael.mercubuana.ac.id/
Anda pasti sudah memperhatikan perbedaan outputnya. Kami memiliki output yang lebih
terstruktur dalam hal ini!
Sekarang, kita dapat mengekstrak judul halaman web dengan memanggil fungsi title()
dari objek sup kita:

title = soup.title
title

Halaman web memiliki banyak gambar monumen terkenal di Delhi dan hal-hal lain yang
berhubungan dengan Delhi. Mari kita coba dan simpan ini di folder lokal.
Kita akan membutuhkan library urllib Python untuk mengambil URL gambar yang ingin
kita simpan. Ini memiliki fungsi urllib.request() yang digunakan untuk membuka dan
membaca URL. Memanggil fungsi urlretrieve() pada objek ini memungkinkan kita untuk
mengunduh objek yang dilambangkan dengan URL ke file lokal:

import urllib
# function to save image from the passed URL
def download_img(url, i):
# folder = r'C:\Users\Dell\Desktop\Analytics Vidhya\
Delhi\\'
folder = r'./Importing files/Delhi/'
# define the file path to store images
filepath = folder + str(i) +'.jpg'
# retrieve the image from the URL and save in the folder
urllib.request.urlretrieve(url,filepath)
Gambar disimpan dalam tag "img" dalam HTML. Ini dapat ditemukan dengan memanggil
find_all() pada objek sup. Setelah ini, kita dapat mengulangi gambar dan mendapatkan
sumbernya dengan memanggil fungsi get() pada objek gambar. Sisanya ditangani oleh
fungsi unduhan kami:
images = soup.find_all('img')
i = 1
for image in images[2:10]:
try:
download_img('https:'+image.get('src'),
i)
i = i+1

2021 Analisis Data


14 Eko Ihsanto, Dr, Ir, M.Eng
Biro Bahan Ajar E-learning dan MKCU
http://pbael.mercubuana.ac.id/
except:
continue

11.10. Membaca File Gambar dengan


PIL
Munculnya Convolutional Neural Networks (CNN) telah membuka pintu gerbang untuk
bekerja di domain visi komputer dan memecahkan masalah seperti deteksi objek,
klasifikasi objek, menghasilkan gambar baru dan apa yang tidak!
Tetapi sebelum Anda mulai bekerja dengan masalah ini, Anda perlu tahu cara membuka
gambar Anda dengan Python. Mari kita lihat bagaimana kita bisa melakukannya dengan
mengambil gambar dari halaman web yang kita simpan di folder lokal kita.
Anda akan membutuhkan Python PIL (Python Image Library) untuk pekerjaan ini.
Cukup panggil fungsi open() di modul Gambar PIL dan teruskan jalur ke gambar Anda:

from PIL import Image


# filename = r'C:\Users\Dell\Desktop\Analytics Vidhya\Delhi\
1.jpg'
filename = r'./Importing files/Delhi/1.jpg'
Image.open(filename)

Jika koding benar, harusnya terlhat seperti gambar di atas ini.

11.11. Membaca banyak File dgn Glob

2021 Analisis Data


15 Eko Ihsanto, Dr, Ir, M.Eng
Biro Bahan Ajar E-learning dan MKCU
http://pbael.mercubuana.ac.id/
Dan sekarang, bagaimana jika Anda ingin membaca banyak file sekaligus? Itu tantangan
yang cukup umum dalam proyek ilmu data.
Modul Glob Python memungkinkan Anda melintasi beberapa file di lokasi yang sama.
Menggunakan glob.glob() , kita dapat mengimpor semua file dari folder lokal kita yang
cocok dengan pola khusus.
Pola nama file ini dapat dibuat menggunakan wildcard yang berbeda seperti “*” (untuk
mencocokkan beberapa karakter), “?” (untuk mencocokkan karakter tunggal apa pun),
atau '[0-9]' (untuk mencocokkan nomor apa pun). Mari kita lihat glob beraksi di bawah ini.
Saat mengimpor beberapa file .py dari direktori yang sama dengan skrip Python Anda,
kami dapat menggunakan wildcard “*” :

for i in glob.glob('.\Importing files\*.py'):


print(i)

Saat mengimpor hanya file Python sepanjang 5 karakter, kita dapat menggunakan "?"
kartu pengganti:

for i in glob.glob('.\Importing files\?????.py'):


print(i)

Saat mengimpor file gambar yang berisi nomor dalam nama file, kita dapat menggunakan
wildcard “[0-9]” :

for i in glob.glob('./Importing files/test_image[0-9].png'):


print(i)

Sebelumnya, kami mengimpor beberapa gambar dari halaman Wikipedia di Delhi dan
menyimpannya di folder lokal. Saya akan mengambil gambar-gambar ini menggunakan
modul glob dan kemudian menampilkannya menggunakan perpustakaan PIL :

import cv2
import matplotlib.pyplot as plt
# import glob
filepath = r'./Importing files/Delhi'
images = glob.glob(filepath+'\
*.jpg')
for i in images[:3]:
im = Image.open(i)
plt.imshow(im)
plt.show()

2021 Analisis Data


16 Eko Ihsanto, Dr, Ir, M.Eng
Biro Bahan Ajar E-learning dan MKCU
http://pbael.mercubuana.ac.id/
11.12. Daftar Pustaka
https://www.analyticsvidhya.com/blog/2020/04/how-to-read-common-
file-formats-python/

2021 Analisis Data


17 Eko Ihsanto, Dr, Ir, M.Eng
Biro Bahan Ajar E-learning dan MKCU
http://pbael.mercubuana.ac.id/

Anda mungkin juga menyukai