Struktur Data di Python
Python bisa dikatakan merupakan “multipurpose language” yang bisa digunakan untuk banyak tujuan seperti Web Development, Software Development, dan Data Analyitcs. Penggunaan python di bidang Data Analytics bisa digunakan dalam Data Cleaning, Machine Learning, Deep Learning, Statistical Analysis, Data Mining maupun Data Visualization.
Saat melakukan Data Cleaning, salah satu hal penting yang perlu diketahui adalah struktur data. Hal ini karena jenis transformasi tertentu (misal join, fillna, aggregasi, sorting, filter, union, upper, lower dan lainnya) akan terkait dengan struktur datanya. Struktur data juga akan mempengaruhi bagaimana cara kita mengolah data.
Data structures are a way of organizing and storing data so that they can be accessed and worked with efficiently. They define the relationship between the data, and the operations that can be performed on the data. [1]
1. Data Frame
Tipe dataframe sama halnya seperti tabel yaitu terdiri dari baris dan kolom. Struktur data ini cocok digunakan untuk “melihat data” secara lebih baik. Beberapa transformasi yang bisa dilakukan mirip dengan query di MySQL seperti berikut ini
##### Groupby
df[['userid','city']].groupby(['city']).count()
df[['userid','city']].groupby(['city']).sum()
df[['userid','city']].groupby(['city']).mean()##### Join
pd.merge(df1,df2,on='userid',how='inner')
df1.merge(df2,left_on='userid',right_on='id',how='inner')##### Union
pd.concat([df1,df2],axis=0,ignore_index=True) # union by rows
pd.concat([df1,df2],axis=1,ignore_index=True) # union by columns##### IN, NOT IN
df[df.relid.isin(userid)] # IN userid list
df[~df.relid.isin(userid)] # NOT IN userid list
is two-dimensional size-mutable, potentially heterogeneous tabular data structure with labeled axes (rows and columns). [3]
2. List
Struktur data list, tuple, array, dan set memiliki kemiripan yaitu data ada di dalam format vektor baris atau vektor kolom. Struktur data paling mirip dengan list adalah tuple. Perbedaanya adalah data yang ada di list dapat diubah (changeable) sementara di tuple tidak bisa diubah (unchangeable). Dalam suatu proses cleaning data, kita bisa memilih untuk menggunakan list ataupun tuple bisa berdasarkan perbedaan tersebut.
'org' in ['com','id','org']
[1,2,3] + [4,5]
['abc','def']*4
index()
count()
sort()
append()
[k for k in temp if k not in ['a','b']]
["hello" for _ in range(len(adj))]
zip(seq1,seq2)
is a collection which is ordered and changeable. Allows duplicate members.
x = [“a”, “b”, “c”]. [3]
3. Dictionary (Dict)
Format data dictionary ini mirip dengan format data json yang mempunyai key. Bisa dikatakan bahwa format dict ini paling berbeda bentuknya dengan struktur data lainnya. Biasanya kita akan sering berurusan dengan format data ini kita melakukan grab data via API.
is a collection which is unordered, changeable and indexed. No duplicate members.
x = { “brand”: “Fer”, “loc”: “Malang”, “year”: 2009 }. [3]
4. Set
Struktur data ini tidak memperbolehkan adanya duplicate values, sehingga sangat bagus digunakan ketika data yang diproses butuh yang unique saja agar tidak memperlama eksekusi. Query MySQL yang mirip seperti SELECT DISTINCT city FROM tblclients.
is a collection which is unordered and unindexed. No duplicate members.
x = {“a”, “b”, “c”}. [3]
5. Tuple
Format data ini sangat mirip dengan list. Perbedaanya adalah format data ini tidak bisa diubah, sehingga sangat cocok digunakan jika kita tidak ingin dataset kita berubah. Format data tuple ini juga bisa digunakan ketika kita akan melakukan import data dari database MYSQL, karena format data yang sesuai yaitu di dalam round brackets.
is a collection which is ordered and unchangeable. Allows duplicate members.
x = (“a”, “b”, “c”). [3]
6. Array
Perbedaan nyata antara array dengan list, tuple, maupun set adalah operasi matematika yang bisa dilakukan. Data yang berada di dalam array bisa dilakukan operasi matematika seperti penambahan, pengurangan, perkalian, differensial, operasi matriks, logaritma dan lainnya, sedangkan format data lainnya tidak. Sehingga format data ini paling umum digunakan dalam statistical analysis, machine learning maupun deep learning yang membutuhkan operasi matematika.
is a sequential arrangement of data elements paired with the index of the data element. [3]
Refference :
[1] https://www.datacamp.com/community/tutorials/data-structures-python
[2] https://github.com/arofiqimaulana/Learn-Python/tree/master/struktur-data
[3] https://www.w3schools.com/python/