<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Data Science Archives - Onestring Lab</title>
	<atom:link href="https://onestringlab.com/tag/data-science/feed/" rel="self" type="application/rss+xml" />
	<link>https://onestringlab.com/tag/data-science/</link>
	<description>Kode Kreativitas Kopi</description>
	<lastBuildDate>Mon, 04 May 2026 08:38:24 +0000</lastBuildDate>
	<language>en-US</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=6.9.4</generator>

<image>
	<url>https://onestringlab.com/wp-content/uploads/2021/10/cropped-osl-high-res-e1455499003866-32x32.jpg</url>
	<title>Data Science Archives - Onestring Lab</title>
	<link>https://onestringlab.com/tag/data-science/</link>
	<width>32</width>
	<height>32</height>
</image> 
	<item>
		<title>Belajar Data Science &#8211; Random Forest Untuk Modeling Data Kapal Titanic (Bagian 4)</title>
		<link>https://onestringlab.com/random-forest-modeling-data-kapal-titanic/</link>
		
		<dc:creator><![CDATA[Rajo Intan]]></dc:creator>
		<pubDate>Mon, 06 Feb 2023 10:17:37 +0000</pubDate>
				<category><![CDATA[Kode]]></category>
		<category><![CDATA[Data Science]]></category>
		<category><![CDATA[Pandas]]></category>
		<category><![CDATA[Python]]></category>
		<guid isPermaLink="false">https://onestringlab.com/?p=1165</guid>

					<description><![CDATA[<p>Artikel ini akan membahas mengenai proses modeling untuk data kapal Titanic menggunakan metode Random Forrest. Proses yang akan dilakukan adalah melatih model Machine Learning dan &#8230; </p>
<p>The post <a href="https://onestringlab.com/random-forest-modeling-data-kapal-titanic/">Belajar Data Science &#8211; Random Forest Untuk Modeling Data Kapal Titanic (Bagian 4)</a> appeared first on <a href="https://onestringlab.com">Onestring Lab</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<p>Artikel ini akan membahas mengenai proses modeling untuk data kapal Titanic menggunakan metode Random Forrest. Proses yang akan dilakukan adalah melatih model Machine Learning dan membandingkan hasilnya. Perhatikan bahwa karena kumpulan data tidak menyediakan label untuk kumpulan pengujiannya, maka perlu menggunakan prediksi pada kumpulan pelatihan untuk membandingkan algoritma satu sama lain. Selanjutnya, akan menggunakan cross validation untuk mendapatkan hasil pembelajaran yang lebih akurat.</p>



<p>Artikel ini merupakan kelanjutan dari <a href="https://onestringlab.com/belajar-data-science-preprocessing-data-kapal-titanic/">Belajar Data Science – Preprocessing Data Kapal Titanic (Bagian 3)</a>. Silahkan baca artikelnya sebelumnya melanjutkan. Data kapal Titanic dapat di akses melalui situs&nbsp;<strong><a href="https://www.kaggle.com/competitions/titanic/code" target="_blank" rel="noreferrer noopener">Kaggle</a></strong>.</p>



<h2 class="wp-block-heading">Import Pustaka</h2>



<pre class="wp-block-code"><code lang="python" class="language-python">from sklearn.ensemble import RandomForestClassifier
from sklearn.model_selection import cross_val_score
from sklearn.model_selection import cross_val_predict
from sklearn.metrics import confusion_matrix,precision_score
from sklearn.metrics import recall_score,f1_score, roc_auc_score</code></pre>



<h2 class="wp-block-heading">Modeling</h2>



<pre class="wp-block-code"><code lang="python" class="language-python">X_train = train_df.drop('Survived', axis=1)
Y_train = train_df['Survived']
X_test = test_df.drop('PassengerId', axis=1)</code></pre>



<h2 class="wp-block-heading">Random forest</h2>



<p>Random Forest adalah supervised learning algorithm. Random Forest membangun beberapa pohon keputusan dan menggabungkannya untuk mendapatkan prediksi yang lebih akurat dan stabil. Satu keuntungan besar dari Random Forest adalah dapat digunakan untuk masalah klasifikasi dan regresi, yang membentuk sebagian besar sistem pembelajaran mesin saat ini. Dengan beberapa pengecualian, pengklasifikasi Random Forest memiliki semua hyperparameter dari pengklasifikasi pohon keputusan dan juga semua hyperparameter dari pengklasifikasi bagging, untuk mengontrol ansambel itu sendiri.</p>



<pre class="wp-block-code"><code lang="python" class="language-python">random_forest = RandomForestClassifier(n_estimators=100)
random_forest.fit(X_train, Y_train)

Y_prediction = random_forest.predict(X_test)

random_forest.score(X_train, Y_train)
acc_random_forest = round(random_forest.score(X_train, Y_train)* 100, 2)

results = pd.DataFrame({
    'Model' : ['Random Forest'],
    'Score' : [acc_random_forest]
})
results</code></pre>



<p>hasil dari kode diatas adalah</p>



<pre class="wp-block-code"><code class="">Random Forest	90.68</code></pre>



<h2 class="wp-block-heading">K-Fold Cross Validation</h2>



<p>Bagaimana kinerja Random Forest saat digunakan validasi silang. K-Fold Cross Validation secara acak membagi data pelatihan menjadi subset K yang disebut folds. Bayangkan data akan dibagi menjadi 10 folds (K = 10). Model Random Forest yang akan dilatih dan dievaluasi 10 kali, menggunakan folds yang berbeda untuk evaluasi setiap saat, sementara itu akan dilatih pada 9 folds lainnya. Oleh karena itu output array dengan 10 skor yang berbeda.</p>



<pre class="wp-block-code"><code lang="python" class="language-python">random_forest = RandomForestClassifier(n_estimators=100)
scores = cross_val_score(random_forest, X_train, Y_train, cv=10, scoring = "accuracy")
print("Scores:", scores)
print("Mean:", scores.mean())
print("Standard Deviation:", scores.std())</code></pre>



<p>hasil dari kode program tersebut adalah</p>



<pre class="wp-block-code"><code class="">Scores: [0.74444444 0.80898876 0.73033708 0.84269663 0.88764045 0.85393258
 0.83146067 0.78651685 0.85393258 0.79775281]
Mean: 0.8137702871410737
Standard Deviation: 0.04756243170100532</code></pre>



<p>Ini terlihat jauh lebih realistis dari sebelumnya. Model memiliki akurasi rata-rata 81% dengan standar deviasi 4,7%. Deviasi standar menunjukkan seberapa tepat estimasi tersebut. Ini berarti hasil pembelajaran keakuratan model dapat berbeda + — 4,7%. Karena akurasinya cukup bagus dan Random Forest adalah model yang mudah digunakan. Untuk meningkatkan kinerjanya lebih jauh lagi sebagai berikut</p>



<h2 class="wp-block-heading">Hyperparameter Tuning</h2>



<p>Untuk meningkatkan kinerjanya dapat dilakukan hyperparameter tunning. Sekarang telah dimiliki model yang tepat, proses mengevaluasi kinerjanya dapat mulai dengan cara yang lebih akurat. Sebelumnya hanyadiggunakan akurasi dan skor oob, yang merupakan bentuk lain dari akurasi.</p>



<pre class="wp-block-code"><code lang="python" class="language-python">random_forest = RandomForestClassifier(criterion='gini',
                                       min_samples_leaf=1,
                                       min_samples_split=10,
                                       n_estimators=100,
                                       max_features='auto',
                                       oob_score=True, 
                                       random_state = 1,
                                       n_jobs=-1)

random_forest.fit(X_train, Y_train)
Y_prediction = random_forest.predict(X_test)

random_forest.score(X_train, Y_train)

print("obb score:", round(random_forest.oob_score_,4)*100, "%")</code></pre>



<p>keluaran dari kode program diatas adalah</p>



<pre class="wp-block-code"><code class="">obb score: 83.73 %</code></pre>



<h2 class="wp-block-heading">Confusion Matrix</h2>



<p>Baris pertama adalah tentang prediksi tidak selamat: 487 penumpang diklasifikasikan dengan benar sebagai tidak selamat (disebut true negatives) dan 62 salah diklasifikasikan sebagai tidak selamat (false positives). Baris kedua adalah tentang prediksi selamat: 98 penumpang salah diklasifikasikan selamat (false negatives) dan 2446 benar diklasifikasikan sebagai selamat (true positives).Confusion matrix memberi banyak informasi tentang seberapa baik model yang dihasilkan, tetapi ada cara untuk mendapatkan lebih banyak lagi, seperti menghitung ketepatan pengklasifikasi.</p>



<pre class="wp-block-code"><code lang="python" class="language-python">predictions = cross_val_predict(random_forest, X_train, Y_train, cv=3)
confusion_matrix(Y_train, predictions)</code></pre>



<p>keluaran kode program diatas</p>



<pre class="wp-block-code"><code class="">array([[487,  62],
       [ 98, 244]])</code></pre>



<h2 class="wp-block-heading">Precision and Recall</h2>



<p>Model telah memprediksi 79% kelangsungan hidup penumpang dengan benar (presisi). Penarikan itu memberi tahu bahwa imeramalkan kelangsungan hidup 71% orang yang benar-benar selamat.</p>



<pre class="wp-block-code"><code lang="python" class="language-python">print("Precision:", precision_score(Y_train, predictions))
print("Recall:", recall_score(Y_train, predictions))</code></pre>



<p>keluaran dari kode program diatas</p>



<pre class="wp-block-code"><code class="">Precision: 0.7973856209150327
Recall: 0.7134502923976608</code></pre>



<h2 class="wp-block-heading">F-Score</h2>



<p>Precision and Recall dapat digabungkan menjadi satu nilai, yang disebut F-Score. F-Score dihitung dengan rata-rata harmonik Precision and Recall. Perhatikan bahwa ini memberikan lebih banyak bobot pada nilai rendah. Akibatnya, pengklasifikasi hanya akan mendapatkan F-Score tinggi, jika Precision and Recall tinggi.</p>



<pre class="wp-block-code"><code lang="python" class="language-python">f1_score(Y_train, predictions)</code></pre>



<p>keluaran dari kode program diatas adalah</p>



<pre class="wp-block-code"><code class="">0.7530864197530864</code></pre>



<p>F-score menunjukkan angka 75%. Skornya tidak terlalu tinggi, karena kami memiliki recall sebesar 71%. Sayangnya, F-score tidak sempurna, karena mendukung pengklasifikasi yang memiliki precision and recall yang serupa. Ini adalah masalah, karena terkadang diinginkan precision dan recall yang tinggi. Masalahnya adalah precision yang meningkat, terkadang menghasilkan perolehan yang menurun pada recall dan sebaliknya (depending on the threshold). Ini disebut tradeoff precision/penarikan.</p>



<h2 class="wp-block-heading">Kesimpulan</h2>



<p>Data kapal Titanic telah dilatih menggunakan model random forest, mengambil dan menerapkan cross validation pada model tersebut. Kemudian dibahas cara kerja random forest dan menyesuaikan kinerjanya dengan mengoptimalkan nilai hyperparameternya. Terakhir, ditunjukkan confusion matrix dan menghitung precision, recall and f-score.</p>
<p>The post <a href="https://onestringlab.com/random-forest-modeling-data-kapal-titanic/">Belajar Data Science &#8211; Random Forest Untuk Modeling Data Kapal Titanic (Bagian 4)</a> appeared first on <a href="https://onestringlab.com">Onestring Lab</a>.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Belajar Data Science &#8211; Preprocessing Data Kapal Titanic (Bagian 3)</title>
		<link>https://onestringlab.com/belajar-data-science-preprocessing-data-kapal-titanic/</link>
		
		<dc:creator><![CDATA[Rajo Intan]]></dc:creator>
		<pubDate>Fri, 03 Feb 2023 23:21:48 +0000</pubDate>
				<category><![CDATA[Kode]]></category>
		<category><![CDATA[Data Science]]></category>
		<category><![CDATA[Pandas]]></category>
		<category><![CDATA[Python]]></category>
		<guid isPermaLink="false">https://onestringlab.com/?p=1150</guid>

					<description><![CDATA[<p>Pada artikel ini akan dilakukan proses mengelola data kapal Titanic. Proses pengelolaannya, pertama adalah melakukan drop pada kolom yang dinilai tidak memiliki pengaruh pada proses &#8230; </p>
<p>The post <a href="https://onestringlab.com/belajar-data-science-preprocessing-data-kapal-titanic/">Belajar Data Science &#8211; Preprocessing Data Kapal Titanic (Bagian 3)</a> appeared first on <a href="https://onestringlab.com">Onestring Lab</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<p>Pada artikel ini akan dilakukan proses mengelola data kapal Titanic. Proses pengelolaannya, pertama adalah melakukan drop pada kolom yang dinilai tidak memiliki pengaruh pada proses berikutnya. Kedua, mengisi data yang kosong dan yang terakhir adalah mengelompokkan data yang ada. Proses ini merupakan kelanjutan dari artikel <a href="https://onestringlab.com/visualisasi-data-penjualan/">Belajar Data Science – Visualisasi Data Penjualan</a> dan <a href="https://onestringlab.com/visualisasi-data-kapal-titanic/">Belajar Data Science – Visualisasi Data Histogram – Mengeksplorasi Data Kapal Titanic (Bagian 2)</a>. Data kapal Titanic dapat di akses melalui situs&nbsp;<strong><a href="https://www.kaggle.com/competitions/titanic/code" target="_blank" rel="noreferrer noopener">Kaggle</a></strong>.</p>



<h2 class="wp-block-heading">Import Pustaka</h2>



<p>Melakukan import pustaka yang dibutuhkan yaitu pandas dan numpy.</p>



<pre class="wp-block-code"><code lang="python" class="language-python">import pandas as pd
import numpy as np</code></pre>



<h2 class="wp-block-heading">Mengambil data</h2>



<p>Data akan diambil dari github yang disiapkan oleh tim&nbsp;<a href="http://onestringlab.com/" target="_blank" rel="noreferrer noopener"><strong>Onestring Lab</strong></a>. Data akan disimpan dalam bentuk Pandas dataframe. Penjelasan mengenai Pandas dataframe dapat dipelajari pada bagian&nbsp;<a href="https://onestringlab.com/tag/data-science/" target="_blank" rel="noreferrer noopener"><strong>Data Science</strong></a>. Berikut ini kode program untuk mengambil data dari github Onestring Lab. Data yang akan digunakan adalah data train.csv dan test.csv.</p>



<pre class="wp-block-code"><code lang="python" class="language-python">train_df = pd.read_csv('https://raw.githubusercontent.com/Onestringlab/osl_datascience/main/data/titanic/train.csv')
train_df.head()</code></pre>



<figure class="wp-block-image size-large"><img fetchpriority="high" decoding="async" width="1024" height="177" src="https://onestringlab.com/wp-content/uploads/2023/02/image-1024x177.png" alt="" class="wp-image-1152" srcset="https://onestringlab.com/wp-content/uploads/2023/02/image-1024x177.png 1024w, https://onestringlab.com/wp-content/uploads/2023/02/image-300x52.png 300w, https://onestringlab.com/wp-content/uploads/2023/02/image-768x133.png 768w, https://onestringlab.com/wp-content/uploads/2023/02/image-1400x242.png 1400w, https://onestringlab.com/wp-content/uploads/2023/02/image.png 1402w" sizes="(max-width: 1024px) 100vw, 1024px" /><figcaption class="wp-element-caption">Data Kapal Titanic &#8211; train.csv</figcaption></figure>



<pre class="wp-block-code"><code lang="python" class="language-python">test_df  = pd.read_csv('https://raw.githubusercontent.com/Onestringlab/osl_datascience/main/data/titanic/test.csv')
test_df.head()</code></pre>



<figure class="wp-block-image size-large"><img decoding="async" width="1024" height="205" src="https://onestringlab.com/wp-content/uploads/2023/02/image-1-1024x205.png" alt="" class="wp-image-1153" srcset="https://onestringlab.com/wp-content/uploads/2023/02/image-1-1024x205.png 1024w, https://onestringlab.com/wp-content/uploads/2023/02/image-1-300x60.png 300w, https://onestringlab.com/wp-content/uploads/2023/02/image-1-768x154.png 768w, https://onestringlab.com/wp-content/uploads/2023/02/image-1.png 1186w" sizes="(max-width: 1024px) 100vw, 1024px" /><figcaption class="wp-element-caption">Data Kapal Titanic &#8211; test.csv</figcaption></figure>



<h2 class="wp-block-heading">Menghapus Beberapa Kolom Data</h2>



<p>Pada data kapal Titanic terdapat beberapa kolom yang perlu dihilangkan. Ini dikarenakan data tersebut bersifat unik. Kolom data tersebut adalah Passenger Id, Name, Ticket dan Cabin.</p>



<pre class="wp-block-code"><code lang="python" class="language-python">train_df['Ticket'].describe()</code></pre>



<p>Terlihat bahwa dari 891 data terdapat 681 data unik.</p>



<pre class="wp-block-code"><code lang="python" class="language-python">count        891
unique       681
top       347082
freq           7
Name: Ticket, dtype: object</code></pre>



<p>Berikut ini adalah perintah drop untuk beberapa kolom tersebut.</p>



<pre class="wp-block-code"><code lang="python" class="language-python">train_df = train_df.drop(['Ticket'], axis=1)
test_df  = test_df.drop(['Ticket'], axis=1)
train_df = train_df.drop(['PassengerId'], axis=1)
test_df  = test_df.drop(['PassengerId'], axis=1)
train_df = train_df.drop(['Name'], axis=1)
test_df  = test_df.drop(['Name'], axis=1)
train_df = train_df.drop(['Cabin'], axis=1)
test_df  = test_df.drop(['Cabin'], axis=1)</code></pre>



<h2 class="wp-block-heading">Mengecek Data Yang Hilang</h2>



<p>Berikut ini adalah proses untuk mengetahui data mana saja yang hilang.</p>



<pre class="wp-block-code"><code lang="python" class="language-python">row = train_df.shape[0]
total = train_df.isnull().sum().sort_values(ascending=False)
presentase = ((train_df.isnull().sum()/row)*100).sort_values(ascending=False)
presentase = round(presentase,2)
dt_missing = list(zip(total,presentase))
train_df_missing = pd.concat([total,presentase],axis=1,keys=['Total','%'])
train_df_missing</code></pre>


<div class="wp-block-image">
<figure class="aligncenter size-full"><img decoding="async" width="241" height="432" src="https://onestringlab.com/wp-content/uploads/2023/02/image-2.png" alt="" class="wp-image-1154" srcset="https://onestringlab.com/wp-content/uploads/2023/02/image-2.png 241w, https://onestringlab.com/wp-content/uploads/2023/02/image-2-167x300.png 167w" sizes="(max-width: 241px) 100vw, 241px" /></figure>
</div>


<h2 class="wp-block-heading">Menggabungan Data Train dan Test</h2>



<p>Berikut ini akan menggabungkan data Train dan Test dalam bentuk array.</p>



<pre class="wp-block-code"><code lang="python" class="language-python">data = [train_df,test_df]</code></pre>



<h2 class="wp-block-heading">Mengisi Data Kosong Pada Kolom Age</h2>



<p>Untuk  data kosong pada kolom Age akan diisi angka random diantara mean &#8211; stdeviasi dan mean+ stdeviasi. Berikut ini kode programnya.</p>



<pre class="wp-block-code"><code lang="python" class="language-python">train_df['Age'].isnull().sum()

for dataset in data:
  mean = train_df['Age'].mean()
  std = train_df['Age'].std()
  is_null = dataset['Age'].isnull().sum()
  rand_age = np.random.randint(mean-std,mean+std, size= is_null)
  age_slice = dataset['Age'].copy()
  age_slice[np.isnan(age_slice)] = rand_age
  dataset['Age'] = age_slice
  dataset['Age'] = train_df['Age'].astype(int)

train_df['Age'].isnull().sum()</code></pre>



<h2 class="wp-block-heading">Mengisi Data Kosong Pada Kolom Embarked</h2>



<p>Untuk  data kosong pada kolom Embarked akan diisi dengan huruf &#8216;S&#8217; dikarenakan data tersebut paling banyak pada kolom tersebut. Berikut ini kode programnya.</p>



<pre class="wp-block-code"><code lang="python" class="language-python">for dataset in data:
  dataset['Embarked'] = dataset['Embarked'].fillna('S')</code></pre>



<h2 class="wp-block-heading">Mengisi Data Kosong Pada Kolom Fare</h2>



<p>Untuk  data kosong pada kolom Fare akan diisi dengan angka 0. Berikut ini kode programnya.</p>



<pre class="wp-block-code"><code lang="python" class="language-python">for dataset in data:
  dataset['Fare'] = dataset['Fare'].fillna(0)
  dataset['Fare'] = dataset['Fare'].astype(int)
</code></pre>



<h2 class="wp-block-heading">Mengubah Data Pada Kolom Sex dan Embarked</h2>



<p>Proses pembelajaran machine learning hanya mengenal angka. Ini mengharuskan melakukan perubahan data string kedalam bentuk bilangan. Kolom Sex yang berisi male dan female akan diubah kedalam bentuk 1 dan 2. Sedangkan kolom Embarked S, C dan Q berubah menjadi 0,1 dan 2. Berikut ini kode programnya.</p>



<pre class="wp-block-code"><code lang="python" class="language-python">genders = {"male" : 0, "female" :1}
for dataset in data:
  dataset['Sex'] = dataset['Sex'].map(genders)</code></pre>



<pre class="wp-block-code"><code lang="python" class="language-python">ports = {"S":0, "C":1, "Q":2}
for dataset in data:
  dataset['Embarked'] = dataset['Embarked'].map(ports)</code></pre>



<h2 class="wp-block-heading">Mengompokan Data Kolom Age</h2>



<p>Data pada kolom Age sifatnya hampir mendekati unik. Ini kurang baik untuk proses pembelajaran. Hal yang harus dilakukan adalah mengelompokkkanya dalam bentuk range umur. Pada kolom Fare juga akan dilakukan proses yang sama. Berikut ini kode programnya.</p>



<pre class="wp-block-code"><code lang="python" class="language-python">for dataset in data:
  dataset['Age'] = dataset["Age"].astype(int)
  dataset.loc[dataset['Age'] &lt;=11, 'Age']=0
  dataset.loc[(dataset['Age'] &gt;11) &amp; (dataset['Age'] &lt;=18), 'Age']=1
  dataset.loc[(dataset['Age'] &gt;18) &amp; (dataset['Age'] &lt;=22), 'Age']=2
  dataset.loc[(dataset['Age'] &gt;22) &amp; (dataset['Age'] &lt;=27), 'Age']=3
  dataset.loc[(dataset['Age'] &gt;27) &amp; (dataset['Age'] &lt;=33), 'Age']=4
  dataset.loc[(dataset['Age'] &gt;33) &amp; (dataset['Age'] &lt;=40), 'Age']=5
  dataset.loc[(dataset['Age'] &gt;40) &amp; (dataset['Age'] &lt;=66), 'Age']=6
  dataset.loc[(dataset['Age'] &gt;66), 'Age']=6</code></pre>



<pre class="wp-block-code"><code lang="python" class="language-python">for dataset in data:
  dataset.loc[dataset['Fare'] &lt;=7.91, 'Fare']=0
  dataset.loc[(dataset['Fare'] &gt;=7.91) &amp; (dataset['Fare'] &lt;=14.454), 'Fare']=1
  dataset.loc[(dataset['Fare'] &gt;14.454) &amp; (dataset['Fare'] &lt;=31), 'Fare']=2
  dataset.loc[(dataset['Fare'] &gt;31) &amp; (dataset['Fare'] &lt;=99), 'Fare']=3
  dataset.loc[(dataset['Fare'] &gt;99) &amp; (dataset['Fare'] &lt;=250), 'Fare']=4
  dataset.loc[dataset['Fare'] &gt;250, 'Fare']=5</code></pre>



<h2 class="wp-block-heading">Membuat Kolom Baru</h2>



<p>Untuk proses machine learning dinilai perlu membuat kolom baru yang merupakan hasil kombinasi dari kolom yang sudah ada. Berikut ini kode programnya.</p>



<pre class="wp-block-code"><code lang="python" class="language-python">for dataset in data:
    dataset['relatives'] = dataset['SibSp'] + dataset['Parch']
    dataset.loc[dataset['relatives'] &gt; 0, 'not_alone'] = 0
    dataset.loc[dataset['relatives'] == 0, 'not_alone'] = 1
    dataset['not_alone'] = dataset['not_alone'].astype(int)</code></pre>



<pre class="wp-block-code"><code lang="python" class="language-python">for dataset in data:
  dataset['Age_Class'] = dataset['Age'] * dataset['Pclass']</code></pre>



<pre class="wp-block-code"><code lang="python" class="language-python">for dataset in data:
  dataset['Fare_Per_Person'] = dataset['Fare']/(dataset['relatives']+1)
  dataset['Fare_Per_Person'] = dataset['Fare_Per_Person'].astype(int)</code></pre>



<h2 class="wp-block-heading">Hasil Preprocessing Data Kapal Titanic</h2>



<p>Berikut ini adalah hasil data terakhir setelah dilakukan proses manipulasi.</p>



<pre class="wp-block-code"><code lang="python" class="language-python">train_df.head(10)</code></pre>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="406" src="https://onestringlab.com/wp-content/uploads/2023/02/image-3-1024x406.png" alt="" class="wp-image-1156" srcset="https://onestringlab.com/wp-content/uploads/2023/02/image-3-1024x406.png 1024w, https://onestringlab.com/wp-content/uploads/2023/02/image-3-300x119.png 300w, https://onestringlab.com/wp-content/uploads/2023/02/image-3-768x304.png 768w, https://onestringlab.com/wp-content/uploads/2023/02/image-3.png 1060w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /><figcaption class="wp-element-caption">Hasil Preprocessing Data Train Kapal Titanic</figcaption></figure>



<pre class="wp-block-code"><code lang="python" class="language-python">test_df.head(10)</code></pre>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="397" src="https://onestringlab.com/wp-content/uploads/2023/02/image-4-1024x397.png" alt="" class="wp-image-1157" srcset="https://onestringlab.com/wp-content/uploads/2023/02/image-4-1024x397.png 1024w, https://onestringlab.com/wp-content/uploads/2023/02/image-4-300x116.png 300w, https://onestringlab.com/wp-content/uploads/2023/02/image-4-768x298.png 768w, https://onestringlab.com/wp-content/uploads/2023/02/image-4.png 1090w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /><figcaption class="wp-element-caption">Hasil Preprocessing Data Test Kapal Titanic</figcaption></figure>



<h2 class="wp-block-heading">Kesimpulan Preprocessing Data Kapal Titanic</h2>



<p>Proses pengelolaan data merupakan hal terpenting sebelum dilakukan proses pembelajaran. Jika proses ini tidak dilakukan dengan benar dan tepat maka proses pembelajaran tidak ada menghasilkan  model yang baik dan bisa digunakan.</p>
<p>The post <a href="https://onestringlab.com/belajar-data-science-preprocessing-data-kapal-titanic/">Belajar Data Science &#8211; Preprocessing Data Kapal Titanic (Bagian 3)</a> appeared first on <a href="https://onestringlab.com">Onestring Lab</a>.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Belajar Data Science &#8211; Visualisasi Data Histogram &#8211; Mengeksplorasi Data Kapal Titanic (Bagian 2)</title>
		<link>https://onestringlab.com/visualisasi-data-kapal-titanic/</link>
		
		<dc:creator><![CDATA[Rajo Intan]]></dc:creator>
		<pubDate>Mon, 16 Jan 2023 09:23:16 +0000</pubDate>
				<category><![CDATA[Kode]]></category>
		<category><![CDATA[Data Science]]></category>
		<category><![CDATA[Pandas]]></category>
		<category><![CDATA[Python]]></category>
		<guid isPermaLink="false">https://onestringlab.com/?p=1055</guid>

					<description><![CDATA[<p>Visualisasi data adalah sesuatu yang sangat penting agar pembaca dapat memahami data secara lebih baik. Ini merupakan lanjutan dari pembahasan mengeksplorasi data kapal Titanic bagian &#8230; </p>
<p>The post <a href="https://onestringlab.com/visualisasi-data-kapal-titanic/">Belajar Data Science &#8211; Visualisasi Data Histogram &#8211; Mengeksplorasi Data Kapal Titanic (Bagian 2)</a> appeared first on <a href="https://onestringlab.com">Onestring Lab</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<p>Visualisasi data adalah sesuatu yang sangat penting agar pembaca dapat memahami data secara lebih baik. Ini merupakan lanjutan dari pembahasan <a href="https://onestringlab.com/mengeksplorasi-data-kapal-titanic/" target="_blank" rel="noreferrer noopener">mengeksplorasi data kapal Titanic bagian 1</a>. Artikel ini akan berfokus untuk proses visualisasi dari kumpulan data yang ada. Data kapal Titanic dapat di akses melalui situs <strong><a href="https://www.kaggle.com/competitions/titanic/code" target="_blank" rel="noreferrer noopener">Kaggle</a></strong>. </p>



<p>Diagram yang digunakan pada proses visualisasi kali ini adalah Histogram. Dalam bidang statistik, histogram adalah tampilan grafis dari tabel frekuensi yang diwakili oleh grafik batang sebagai bentuk dari pengelompokan data. Setiap tampilan batang menunjukkan proporsi frekuensi di setiap kelompok kategori yang berdekatan pada interval yang tidak tumpang tindih.</p>



<h2 class="wp-block-heading">Mengambil data</h2>



<p>Data  akan diambil dari github yang disiapkan oleh tim <a href="http://onestringlab.com" target="_blank" rel="noreferrer noopener"><strong>Onestring Lab</strong></a>. Data akan disimpan dalam bentuk Pandas dataframe. Penjelasan mengenai Pandas dataframe dapat dipelajari pada bagian <a href="https://onestringlab.com/tag/data-science/" target="_blank" rel="noreferrer noopener"><strong>Data Science</strong></a>. Berikut ini kode program untuk mengambil data dari github Onestring Lab.</p>



<pre class="wp-block-code"><code lang="python" class="language-python">import pandas as pd

df = pd.read_csv('https://raw.githubusercontent.com/Onestringlab/osl_datascience/main/data/titanic/train.csv')
df.head()</code></pre>



<h2 class="wp-block-heading">Histogram Visualisasi Data Kapal Titanic</h2>



<p>Bagian ini akan melihat hubungan antara kelompok umur dan jenis kelamin dengan jumlah penumpang yang selamat. Diagram yang akan digunakan pada visualisasi ini adalah Histogram. Berikut ini adalah kode programnya. </p>



<pre class="wp-block-code"><code lang="python" class="language-python">import matplotlib.pyplot as plt

data_age_survived =df[['Sex','Age','Survived']].copy()
data_age_survived =df[['Sex','Age','Survived']].copy()
data_male_0 = data_age_survived.loc[(data_age_survived['Sex'] == 'male') &amp; 
                                    (data_age_survived['Survived'] == 0)].copy()
data_male_0 = data_male_0.dropna()

data_male_1 = data_age_survived.loc[(data_age_survived['Sex'] == 'male') &amp; 
                                    (data_age_survived['Survived'] == 1)].copy()
data_male_1 = data_male_1.dropna()

fig = plt.figure(figsize=(12,8))
plt.hist(data_male_0['Age'],40, color ='orange', alpha = 0.7, label = "Not Survived")
plt.hist(data_male_1['Age'],40, color ='blue', alpha = 0.7, label = "Survived")
plt.title('Male')
plt.xlabel('Age')
plt.ylabel('Survived')
plt.legend()
plt.show() </code></pre>



<p>Keluaran dari kode program ditunjukkan pada gambar berikut ini</p>


<div class="wp-block-image">
<figure class="aligncenter size-full is-resized"><img loading="lazy" decoding="async" src="https://onestringlab.com/wp-content/uploads/2023/01/image-6.png" alt="" class="wp-image-1059" width="673" height="452" srcset="https://onestringlab.com/wp-content/uploads/2023/01/image-6.png 897w, https://onestringlab.com/wp-content/uploads/2023/01/image-6-300x202.png 300w, https://onestringlab.com/wp-content/uploads/2023/01/image-6-768x516.png 768w" sizes="auto, (max-width: 673px) 100vw, 673px" /><figcaption class="wp-element-caption">Histogram Rentang Umur Penumpang Laki-laki</figcaption></figure>
</div>


<pre class="wp-block-code"><code lang="python" class="language-python">data_female_0 = data_age_survived.loc[(data_age_survived['Sex'] == 'female') &amp; 
                                    (data_age_survived['Survived'] == 0)].copy()
data_female_0 = data_female_0.dropna()

data_female_1 = data_age_survived.loc[(data_age_survived['Sex'] == 'female') &amp; 
                                    (data_age_survived['Survived'] == 1)].copy()
data_female_1 = data_female_1.dropna()

fig = plt.figure(figsize=(12,8))
plt.hist(data_female_0['Age'],40, color ='orange', alpha = 0.7, label = "Not Survived")
plt.hist(data_female_1['Age'],40, color ='blue', alpha = 0.7, label = "Survived")
plt.title('Female')
plt.xlabel('Age')
plt.ylabel('Survived')
plt.legend()
plt.show() </code></pre>



<p>Keluaran dari kode program ditunjukkan pada gambar berikut ini</p>


<div class="wp-block-image">
<figure class="aligncenter size-full is-resized"><img loading="lazy" decoding="async" src="https://onestringlab.com/wp-content/uploads/2023/01/image-7.png" alt="" class="wp-image-1060" width="692" height="455" srcset="https://onestringlab.com/wp-content/uploads/2023/01/image-7.png 922w, https://onestringlab.com/wp-content/uploads/2023/01/image-7-300x198.png 300w, https://onestringlab.com/wp-content/uploads/2023/01/image-7-768x506.png 768w" sizes="auto, (max-width: 692px) 100vw, 692px" /><figcaption class="wp-element-caption">Histogram Rentang Umur Penumpang Perempuan</figcaption></figure>
</div>


<h2 class="wp-block-heading">Kesimpulan</h2>



<p>Visualisasi data dapat memberikan pemahaman yang lebih baik daripada data ditampilkan dalam bentuk tabel. Histogram menunjukkan bahwa penumpang wanita dengan rentang usia 20-40 tahun  memilki kemungkinan yang tinggi untuk selamat dari kecelakan kapal Titanic dan juga terlihat bahwa pada rentang usia tersebutlah baik penumpang laki-laki atau perempuan yang paling banyak selamat.</p>
<p>The post <a href="https://onestringlab.com/visualisasi-data-kapal-titanic/">Belajar Data Science &#8211; Visualisasi Data Histogram &#8211; Mengeksplorasi Data Kapal Titanic (Bagian 2)</a> appeared first on <a href="https://onestringlab.com">Onestring Lab</a>.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Belajar Data Science &#8211; Mengeksplorasi Data Kapal Titanic (Bagian 1)</title>
		<link>https://onestringlab.com/belajar-data-science-mengeksplorasi-data-kapal-titanic-bagian-1/</link>
		
		<dc:creator><![CDATA[Rajo Intan]]></dc:creator>
		<pubDate>Fri, 13 Jan 2023 07:51:24 +0000</pubDate>
				<category><![CDATA[Kode]]></category>
		<category><![CDATA[Data Science]]></category>
		<category><![CDATA[Dataframe]]></category>
		<category><![CDATA[Pandas]]></category>
		<category><![CDATA[Python]]></category>
		<guid isPermaLink="false">https://onestringlab.com/?p=1026</guid>

					<description><![CDATA[<p>Artikel ini akan mengeksplorasi data kapal Titanic yang tersedia di situs Kaggle. Berikut ini tahapan-tahapan yang akan dilakukan. 1. Mengambil data Data akan diambil dari &#8230; </p>
<p>The post <a href="https://onestringlab.com/belajar-data-science-mengeksplorasi-data-kapal-titanic-bagian-1/">Belajar Data Science &#8211; Mengeksplorasi Data Kapal Titanic (Bagian 1)</a> appeared first on <a href="https://onestringlab.com">Onestring Lab</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<p>Artikel ini akan mengeksplorasi data kapal Titanic yang tersedia di situs <a href="https://www.kaggle.com/competitions/titanic/code" target="_blank" rel="noreferrer noopener">Kaggle</a>.  Berikut ini tahapan-tahapan yang akan dilakukan.</p>



<h2 class="wp-block-heading">1. Mengambil data</h2>



<p>Data  akan diambil dari github yang disiapkan oleh tim <a href="http://onestringlab.com" target="_blank" rel="noreferrer noopener"><strong>Onestring Lab</strong></a>. Data akan disimpan dalam bentuk Pandas dataframe. Penjelasan mengenai Pandas dataframe dapat dipelajari pada bagian <a href="https://onestringlab.com/tag/data-science/" target="_blank" rel="noreferrer noopener"><strong>Data Science</strong></a>. Berikut ini kode program untuk mengambil data dari github Onestring Lab.</p>



<pre class="wp-block-code"><code lang="python" class="language-python">import pandas as pd
df = pd.read_csv('https://raw.githubusercontent.com/Onestringlab/osl_datascience/main/data/titanic/train.csv')
df.head()</code></pre>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="174" src="https://onestringlab.com/wp-content/uploads/2023/01/image-1024x174.png" alt="" class="wp-image-1029" srcset="https://onestringlab.com/wp-content/uploads/2023/01/image-1024x174.png 1024w, https://onestringlab.com/wp-content/uploads/2023/01/image-300x51.png 300w, https://onestringlab.com/wp-content/uploads/2023/01/image-768x131.png 768w, https://onestringlab.com/wp-content/uploads/2023/01/image.png 1415w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /><figcaption class="wp-element-caption">Mengeksplorasi Data Kapal Titanic</figcaption></figure>



<h2 class="wp-block-heading">2. Mengetahui jenis data dan jumlah data</h2>



<p>Langkah selanjutnya adalah mengetahui jenis data yang pada setiap variabel. Selain itu, juga untuk mengetahui berapa jumlah kelengkapan data pada masing-masing variabel. Tipe data variabel pada data kapal Titanic cukup beragam yaitu int64, object, dan float64. Untuk jumlah data kosong, variabel Age dan Cabin memiliki data kosong. Variabel Age memiliki 177 data kosong, sedangkan variabel Cabin memiliki 687 data kosong.</p>



<pre class="wp-block-code"><code lang="python" class="language-python">df.info()</code></pre>


<div class="wp-block-image">
<figure class="aligncenter size-full"><img loading="lazy" decoding="async" width="422" height="426" src="https://onestringlab.com/wp-content/uploads/2023/01/image-1.png" alt="" class="wp-image-1030" srcset="https://onestringlab.com/wp-content/uploads/2023/01/image-1.png 422w, https://onestringlab.com/wp-content/uploads/2023/01/image-1-297x300.png 297w, https://onestringlab.com/wp-content/uploads/2023/01/image-1-150x150.png 150w" sizes="auto, (max-width: 422px) 100vw, 422px" /><figcaption class="wp-element-caption">Informasi mengenai tipe dan jumlah data yang tersedia.</figcaption></figure>
</div>


<h2 class="wp-block-heading">4. Mengetahui statistik deskriptif</h2>



<p>Bagian ini akan diperlihatan statistif deskriptif dari data kapal Titanic. Data menunjukan bahwa jumlah data sebanyak 891 data dan presentase rata-rata penumpang selamat pada tragedi tenggelamnya kapa tersebut sebesar 38.38%. Selain itu, pada variabel Age juga dapat diketahui pada usia penumpang kapal Titani antar 0.42 &#8211; 80 tahun.</p>



<pre class="wp-block-code"><code lang="python" class="language-python">df.describe()</code></pre>


<div class="wp-block-image">
<figure class="aligncenter size-full"><img loading="lazy" decoding="async" width="852" height="356" src="https://onestringlab.com/wp-content/uploads/2023/01/image-3.png" alt="" class="wp-image-1032" srcset="https://onestringlab.com/wp-content/uploads/2023/01/image-3.png 852w, https://onestringlab.com/wp-content/uploads/2023/01/image-3-300x125.png 300w, https://onestringlab.com/wp-content/uploads/2023/01/image-3-768x321.png 768w" sizes="auto, (max-width: 852px) 100vw, 852px" /><figcaption class="wp-element-caption">Data kapal Titanic dalam statistik deskriptif.</figcaption></figure>
</div>


<h2 class="wp-block-heading">5. Mengetahui jumlah data yang kosong</h2>



<p>Bagian ini akan mengeksplorasi lebih jauh mengenai variabel yang memiliki data yang kosong. Tabel menunjukkan bahwa terdapat 2 variabel yang memiliki data kosong, yaitu Cabin dan Age. Variabel Cabin memiliki presetanse data kosong sebesar 77.10%, sedangkan Age sebesar 19.92%.</p>



<pre class="wp-block-code"><code lang="python" class="language-python">row = df.shape[0]
total = df.isnull().sum().sort_values(ascending=False)
presentase = ((df.isnull().sum()/row)*100).sort_values(ascending=False)
presentase = round(presentase,2)
dt_missing = list(zip(total,presentase))
df_missing = pd.concat([total,presentase],axis=1,keys=['Total','%'])
df_missing</code></pre>


<div class="wp-block-image">
<figure class="aligncenter size-full"><img loading="lazy" decoding="async" width="275" height="507" src="https://onestringlab.com/wp-content/uploads/2023/01/image-4.png" alt="" class="wp-image-1035" srcset="https://onestringlab.com/wp-content/uploads/2023/01/image-4.png 275w, https://onestringlab.com/wp-content/uploads/2023/01/image-4-163x300.png 163w" sizes="auto, (max-width: 275px) 100vw, 275px" /><figcaption class="wp-element-caption">Presentase variabel yang memiliki data kosong.</figcaption></figure>
</div>


<h2 class="wp-block-heading">Kesimpulan Mengeksplorasi Data Kapal Titanic</h2>



<p>Setelah dilakukan eksplorasi tahap awal pada data Kapal Titanic maka dapat disimpulkan bahwa data ini memiliki 891 baris data terdiri dari 11 variabel dengan tipe data int64, float64 dan object dan terdapat 2 variabel yang memiliki data kosong yaitu Cabin dan Age.  Cabin memiliki presentase data kosong yang besar yaitu mencapai 77.10%, sehingga layak untuk tidak digunakan, sedangkan variabel Age masih di layak untuk digunakan untuk proses selanjutnya.</p>
<p>The post <a href="https://onestringlab.com/belajar-data-science-mengeksplorasi-data-kapal-titanic-bagian-1/">Belajar Data Science &#8211; Mengeksplorasi Data Kapal Titanic (Bagian 1)</a> appeared first on <a href="https://onestringlab.com">Onestring Lab</a>.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Belajar Data Science &#8211; Visualisasi Data Penjualan</title>
		<link>https://onestringlab.com/visualisasi-data-penjualan/</link>
		
		<dc:creator><![CDATA[Rajo Intan]]></dc:creator>
		<pubDate>Fri, 16 Dec 2022 02:01:00 +0000</pubDate>
				<category><![CDATA[Kode]]></category>
		<category><![CDATA[Data Science]]></category>
		<category><![CDATA[Dataframe]]></category>
		<category><![CDATA[Pandas]]></category>
		<guid isPermaLink="false">https://onestringlab.com/?p=990</guid>

					<description><![CDATA[<p>Pada artikel ini akan dibahas mengenai cara melakukan visualisasi data penjualan. Fitur pustaka matplotlib akan digunakan untuk melakukan visualisasi data penjualan. Berikut ini tahap yang &#8230; </p>
<p>The post <a href="https://onestringlab.com/visualisasi-data-penjualan/">Belajar Data Science &#8211; Visualisasi Data Penjualan</a> appeared first on <a href="https://onestringlab.com">Onestring Lab</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<p>Pada artikel ini akan dibahas mengenai cara melakukan visualisasi data penjualan. Fitur pustaka matplotlib akan digunakan untuk melakukan visualisasi data penjualan. Berikut ini tahap yang akan dilakukan.</p>



<h2 class="wp-block-heading">1. Import pustaka untuk visualisasi data penjualan</h2>



<p>Pustaka yang dibutuhkan pada pekerjaan ini adalah pandas, numpy  dan matplotlib. Berikut kode programnya.</p>



<pre class="wp-block-code"><code lang="python" class="language-python">import numpy as np 
import pandas as pd
import matplotlib.pyplot as plt</code></pre>



<h2 class="wp-block-heading">2. Membentuk DataFrame dari file .csv</h2>



<p>Langkah berikutnya adalah membentuk DataFrame dari file .csv yang berisikan data penjualan berbagai produk. Berikut ini kode programnya. Hasil luaran pada kode program ini terlihat seperti pada Gambar 1. </p>



<pre class="wp-block-code"><code lang="python" class="language-python">df = pd.read_csv('https://raw.githubusercontent.com/Onestringlab/osl_datascience/main/data/penjualan.csv')
df.head(20)</code></pre>


<div class="wp-block-image">
<figure class="aligncenter size-full is-resized"><img loading="lazy" decoding="async" src="https://onestringlab.com/wp-content/uploads/2022/12/image-7.png" alt="" class="wp-image-993" width="684" height="383" srcset="https://onestringlab.com/wp-content/uploads/2022/12/image-7.png 912w, https://onestringlab.com/wp-content/uploads/2022/12/image-7-300x168.png 300w, https://onestringlab.com/wp-content/uploads/2022/12/image-7-768x429.png 768w" sizes="auto, (max-width: 684px) 100vw, 684px" /><figcaption class="wp-element-caption">Gambar 1. Tampilan data penjualan  untuk visualisasi</figcaption></figure>
</div>


<h2 class="wp-block-heading">3. Total profit setiap bulan</h2>



<p>Pada bagian ini akan menampilkan  <a href="https://onestringlab.com/line-chart-visualisasi-data-dengan-matplotlib/" target="_blank" rel="noreferrer noopener">grafik garis</a> untuk total profit setiap bulan. Berikut ini kode program dan hasil luaran program ditunjukkan pada Gambar 2. </p>



<pre class="wp-block-code"><code lang="python" class="language-python">fig = plt.figure(figsize=(12,8))
ax = plt.axes()
ax.plot(df['bulan'],df['total_profit'])
ax.set_title('Laporan Penjualan')
ax.set_ylabel('Total Profit')
ax.set_xlabel('Bulan')</code></pre>


<div class="wp-block-image">
<figure class="aligncenter size-full is-resized"><img loading="lazy" decoding="async" src="https://onestringlab.com/wp-content/uploads/2022/12/image-8.png" alt="" class="wp-image-994" width="557" height="372" srcset="https://onestringlab.com/wp-content/uploads/2022/12/image-8.png 742w, https://onestringlab.com/wp-content/uploads/2022/12/image-8-300x201.png 300w" sizes="auto, (max-width: 557px) 100vw, 557px" /><figcaption class="wp-element-caption">Gambar 3.  Tampilan grafik garis total profit  setiap bulan</figcaption></figure>
</div>


<h2 class="wp-block-heading">4. Penjualan produk setiap bulan</h2>



<p>Pada bagian ini akan menampilkan  grafik multi garis untuk total penjualan produk setiap bulan. Berikut ini kode program dan hasil luaran program ditunjukkan pada Gambar 3. </p>



<pre class="wp-block-code"><code lang="python" class="language-python">fig = plt.figure(figsize=(12,8))
ax = plt.axes()
ax.plot(df['bulan'],df['krimwajah'],label="krimwajah")
ax.plot(df['bulan'],df['sabunwajah'],label="sabunwajah")
ax.plot(df['bulan'],df['pastagigi'],label="pastagigi")
ax.plot(df['bulan'],df['sabun'],label="sabun")
ax.plot(df['bulan'],df['sampo'],label="sampo")
ax.plot(df['bulan'],df['pelembab'],label="pelembab")
ax.set_title('Penjualan Perusahaan')
ax.set_ylabel('Profit')
ax.set_xlabel('Bulan')
ax.legend(loc="upper left", ncol=1, shadow=True, borderpad=1);</code></pre>


<div class="wp-block-image">
<figure class="aligncenter size-full is-resized"><img loading="lazy" decoding="async" src="https://onestringlab.com/wp-content/uploads/2022/12/image-9.png" alt="" class="wp-image-996" width="552" height="372" srcset="https://onestringlab.com/wp-content/uploads/2022/12/image-9.png 736w, https://onestringlab.com/wp-content/uploads/2022/12/image-9-300x202.png 300w" sizes="auto, (max-width: 552px) 100vw, 552px" /><figcaption class="wp-element-caption">Gambar 3. Tampilan grafik multi garis  total penjualan produk setiap bulan</figcaption></figure>
</div>


<h2 class="wp-block-heading">5. Penjualan pasta gigi setiap bulan.</h2>



<p>Pada bagian ini akan menampilkan  grafik <a href="https://onestringlab.com/scatter-plot-visualisasi-data-dengan-matplotlib/" target="_blank" rel="noreferrer noopener">scatter plot</a> untuk penjualan pasta gigi setiap bulan. Berikut ini kode program dan hasil luaran program ditunjukkan pada Gambar 4.</p>



<pre class="wp-block-code"><code lang="python" class="language-python">fig = plt.figure(figsize=(12,8))
x = df['bulan']
y = df['pastagigi']
plt.title('Penjualan Pasta Gigi')
plt.scatter(x, y)
plt.xlabel('Bulan')
plt.ylabel('Penjualan')
plt.show()</code></pre>


<div class="wp-block-image">
<figure class="aligncenter size-full is-resized"><img loading="lazy" decoding="async" src="https://onestringlab.com/wp-content/uploads/2022/12/image-10.png" alt="" class="wp-image-997" width="548" height="372" srcset="https://onestringlab.com/wp-content/uploads/2022/12/image-10.png 730w, https://onestringlab.com/wp-content/uploads/2022/12/image-10-300x204.png 300w" sizes="auto, (max-width: 548px) 100vw, 548px" /><figcaption class="wp-element-caption">Gambar 4. Tampilan scatter plot untuk penjualan pasta gigi setiap bulan.</figcaption></figure>
</div>


<h2 class="wp-block-heading">6. Penjualan produk setiap bulan</h2>



<p>Pada bagian ini akan menampilkan  grafik <a href="https://onestringlab.com/bar-chart-visualisasi-data-dengan-matplotlib/" target="_blank" rel="noreferrer noopener">multi batang</a> untuk penjualan produk setiap bulan. Berikut ini kode program dan hasil luaran program ditunjukkan pada Gambar 5.</p>



<pre class="wp-block-code"><code lang="python" class="language-python">fig = plt.figure(figsize=(12,8))
X = df['bulan']
X_axis = np.arange(len(X))+1
width = 0.15
  
plt.bar(X_axis, df['krimwajah'], width, label='krimwajah')
plt.bar(X_axis + width, df['sabunwajah'], width, label='sabunwajah')
plt.bar(X_axis + width*2, df['pastagigi'], width, label='pastagigi')
plt.bar(X_axis + width*3, df['sabun'], width, label='sabun')
plt.bar(X_axis + width*4, df['sampo'], width, label='sampo')
plt.bar(X_axis + width*5, df['pelembab'], width, label='pelembab')

plt.xticks(X_axis, X)
plt.xlabel("Bulan")
plt.ylabel("Unit Terjual")
plt.title("Jumlah unit terjual per bulan setiap produk")
plt.legend()
plt.show()</code></pre>


<div class="wp-block-image">
<figure class="aligncenter size-full is-resized"><img loading="lazy" decoding="async" src="https://onestringlab.com/wp-content/uploads/2022/12/image-11.png" alt="" class="wp-image-998" width="552" height="372" srcset="https://onestringlab.com/wp-content/uploads/2022/12/image-11.png 736w, https://onestringlab.com/wp-content/uploads/2022/12/image-11-300x202.png 300w" sizes="auto, (max-width: 552px) 100vw, 552px" /><figcaption class="wp-element-caption">Gamber 5.  Tampilan  grafik multi batang untuk penjualan produk setiap bulan.</figcaption></figure>
</div>


<h2 class="wp-block-heading">7. Penjualan produk dalam 1 tahun</h2>



<p>Pada bagian ini akan menampilkan  <a href="https://onestringlab.com/pie-chart-visualisasi-data-dengan-matplotlib/" target="_blank" rel="noreferrer noopener">grafik lingkaran</a> untuk penjualan produk dalam 1 tahun. Berikut ini kode program dan hasil luaran program ditunjukkan pada Gambar 6.</p>



<pre class="wp-block-code"><code lang="python" class="language-python">sum_column = df.iloc[:,1:7].sum(axis=0)
sum_column.sort_values(ascending=True, inplace=True)
fig = plt.figure(figsize=(8,8))
ax = plt.axes()
colors = ('#FD0100', '#F76915', '#EEDE04', '#A0D636', '#2FA236', '#00A3FF')
labels = ['pelembab','sabunwajah','sampo','krimwajah','pastagigi','sabun']
ax.pie(sum_column, labels = labels, autopct='%1.0f%%', colors=colors,startangle = 90)
ax.set_title('Presentase penjualan produk dalam 1 tahun')</code></pre>


<div class="wp-block-image">
<figure class="aligncenter size-full"><img loading="lazy" decoding="async" width="470" height="465" src="https://onestringlab.com/wp-content/uploads/2022/12/image-12.png" alt="" class="wp-image-999" srcset="https://onestringlab.com/wp-content/uploads/2022/12/image-12.png 470w, https://onestringlab.com/wp-content/uploads/2022/12/image-12-300x297.png 300w" sizes="auto, (max-width: 470px) 100vw, 470px" /><figcaption class="wp-element-caption">Gambar 6. Tampilan grafik lingkaran untuk penjualan produk dalam 1 tahun</figcaption></figure>
</div>


<h2 class="wp-block-heading">Kesimpulan Visualisasi Data Penjualan</h2>



<p>Visualisasi data sangat diperlukan untuk proses memahami data yang dimiliki. Visualisasi data lebih menarik jika dibandingkan data dalam bentuk tabel. Bahasa pemrograman Python sudah menyediakan berbagai pustaka untuk proses visualisasi data.</p>
<p>The post <a href="https://onestringlab.com/visualisasi-data-penjualan/">Belajar Data Science &#8211; Visualisasi Data Penjualan</a> appeared first on <a href="https://onestringlab.com">Onestring Lab</a>.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Belajar Data Science &#8211; 5 Cara Membuat Pandas DataFrame</title>
		<link>https://onestringlab.com/5-cara-membuat-pandas-dataframe/</link>
		
		<dc:creator><![CDATA[Rajo Intan]]></dc:creator>
		<pubDate>Tue, 13 Dec 2022 02:00:00 +0000</pubDate>
				<category><![CDATA[Kode]]></category>
		<category><![CDATA[Data Science]]></category>
		<category><![CDATA[Dataframe]]></category>
		<category><![CDATA[Pandas]]></category>
		<guid isPermaLink="false">https://onestringlab.com/?p=913</guid>

					<description><![CDATA[<p>Ada 5 cara membuat dataframe yang harus diketahui. Lima cara tersebut adalah membuat dataframe dari 1 buah list, membuat dataframe dari 1 buah list dengan &#8230; </p>
<p>The post <a href="https://onestringlab.com/5-cara-membuat-pandas-dataframe/">Belajar Data Science &#8211; 5 Cara Membuat Pandas DataFrame</a> appeared first on <a href="https://onestringlab.com">Onestring Lab</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<p>Ada 5 cara membuat dataframe yang harus diketahui. Lima cara tersebut adalah membuat dataframe dari 1 buah list, membuat dataframe dari 1 buah list dengan nama kolom serta index, membuat dataframe dari beberapa list, membuat dataframe dari multidimensi list dan membuat dataframe dari dictionary. Berikut ini penjelasannya dan cara kode programnnya. </p>



<p>Hal pertama yang tentunya harus dilakukan adalah memanggil pustaka Pandas. Berikut kode programnya.</p>



<pre class="wp-block-code"><code lang="python" class="language-python">import pandas as pd</code></pre>



<h2 class="wp-block-heading">1. Membuat DataFrame dari 1 buah list</h2>



<p>Pandas DataFrame dapat dibentuk dari 1 buah list. Ini ditunjukkan pada kode program berikut ini</p>



<pre class="wp-block-code"><code lang="python" class="language-python">data = ['Anita', 'Budiman', 'Candra', 'Dorimilaje', 'Baskoro', 'Febiola', 'Hartono']
df = pd.DataFrame(data)
df</code></pre>



<h2 class="wp-block-heading">2. Membuat DataFrame dari 1 list, memberikan nama kolom dan nilai index</h2>



<p>Setelah DataFrame dibentuk maka dapat ditambahkan nama kolom dan nilai index yang diinginkan. Berikut ini kode programnya.</p>



<pre class="wp-block-code"><code lang="python" class="language-python">data = ['Anita', 'Budiman', 'Candra', 'Dorimilaje', 'Baskoro', 'Febiola', 'Hartono']
df = pd.DataFrame(data,columns=['nama'],
                  index=['a', 'b', 'c', 'd', 'e', 'f', 'g'])
df</code></pre>



<h2 class="wp-block-heading">3. Membuat DataFrame  dari beberapa list</h2>



<p>DataFrame  juga dapat dibentuk dari beberapa list. Berikut ini kode programnya.</p>



<pre class="wp-block-code"><code lang="python" class="language-python">data = ['Anita', 'Budiman', 'Candra', 'Dorimilaje', 'Baskoro', 'Febiola', 'Hartono']
jk = ["W","P","P","W","P","W","P"]
nilai = [89,45,67,78,67,45,84]
dt = list(zip(data,jk,nilai))
df = pd.DataFrame(dt,columns=['nama','gender','nilai'])
df</code></pre>



<h2 class="wp-block-heading">4. Membuat DataFrame dari multidimensi list</h2>



<p>DataFrame juga dapat dibentuk dari multidimensi list. Berikut ini kode programnya.</p>



<pre class="wp-block-code"><code lang="python" class="language-python">data = [['Anita','W',89], ['Budiman','P',45], ['Candra','P',867], 
        ['Dorimilaje','W',78],['Baskoro','P','67'],
        ['Febiola','W',45], ['Hartono','P',84]]
df = pd.DataFrame(data,columns=['nama','gender','nilai'])
df</code></pre>



<h2 class="wp-block-heading"> 5. Membuat data frame menggunakan dictionary</h2>



<p>Terakhir, DataFrame juga dapat dibentuk dari sebuah dictionary. Berikut ini contoh programnya.</p>



<pre class="wp-block-code"><code lang="python" class="language-python">data = ['Anita', 'Budiman', 'Candra', 'Dorimilaje', 'Baskoro', 'Febiola', 'Hartono']
jk = ["W","P","P","W","P","W","P"]
nilai = [89,45,67,78,67,45,84]
dic = {'nama':data,'gender':jk,'nilai':nilai}
df = pd.DataFrame(dic)
df</code></pre>



<p>Luaran dari kode program di atas ditunjukan pada gambar berikut ini.</p>


<div class="wp-block-image">
<figure class="aligncenter size-full"><img loading="lazy" decoding="async" width="280" height="325" src="https://onestringlab.com/wp-content/uploads/2022/12/image-3.png" alt="" class="wp-image-914" srcset="https://onestringlab.com/wp-content/uploads/2022/12/image-3.png 280w, https://onestringlab.com/wp-content/uploads/2022/12/image-3-258x300.png 258w" sizes="auto, (max-width: 280px) 100vw, 280px" /><figcaption class="wp-element-caption">Cara membuat DataFrame dari dictionary</figcaption></figure>
</div>


<h2 class="wp-block-heading">Kesimpulan</h2>



<p>Seperti yang telah dijelaskan bahwa untuk membentuk sebuah DataFrame dapat dilakukan dengan berbagai cara.  Sebenarnya ada juga cara lain yaitu membentuknya dari file .csv. Namun, mengenai teknik ini sudah dijelaskan pada artikel <a href="https://onestringlab.com/memuat-data-csv-ke-pandas/">Memuat Data CSV ke DataFrame</a>. Untuk dokumentasi lebih lengkap mengenai proses pembentukan DataFrame ini dapat dilihat <a href="https://www.geeksforgeeks.org/create-a-pandas-dataframe-from-lists/" target="_blank" rel="noreferrer noopener">disini</a>.</p>
<p>The post <a href="https://onestringlab.com/5-cara-membuat-pandas-dataframe/">Belajar Data Science &#8211; 5 Cara Membuat Pandas DataFrame</a> appeared first on <a href="https://onestringlab.com">Onestring Lab</a>.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Belajar Data Science &#8211; Visualisasi Data dengan Scatter Plot Matplotlib</title>
		<link>https://onestringlab.com/scatter-plot-visualisasi-data-dengan-matplotlib/</link>
		
		<dc:creator><![CDATA[Rajo Intan]]></dc:creator>
		<pubDate>Sun, 05 Jun 2022 07:40:14 +0000</pubDate>
				<category><![CDATA[Kode]]></category>
		<category><![CDATA[Data Science]]></category>
		<category><![CDATA[Scatter Plot]]></category>
		<category><![CDATA[Visualisasi Data]]></category>
		<guid isPermaLink="false">https://onestringlab.com/?p=731</guid>

					<description><![CDATA[<p>Scatter plot (diagram sebar) digunakan untuk mengetahui tingkat eratnya hubungan antara 2 (dua) variabel dan menentukan jenis hubungan antara 2 (dua) variabel, apakah hubungan positif, &#8230; </p>
<p>The post <a href="https://onestringlab.com/scatter-plot-visualisasi-data-dengan-matplotlib/">Belajar Data Science &#8211; Visualisasi Data dengan Scatter Plot Matplotlib</a> appeared first on <a href="https://onestringlab.com">Onestring Lab</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<p>Scatter plot (diagram sebar) digunakan untuk mengetahui tingkat eratnya hubungan antara 2 (dua) variabel dan menentukan jenis hubungan antara 2 (dua) variabel, apakah hubungan positif, hubungan negatif atau tidak ada hubungan sama sekali.  Scatter plot, juga dikenal sebagai diagram sebar, adalah diagram grafis yang dibangun dari dua sumbu X dan Y (variabel X dan variabel Y). Nilai dari pasangan variabel ini direpresentasikan sebagai titik. Oleh karena itu,  Scatter plot  sering disebut sebagai  diagram sebar . Diagram ini  dapat menunjukkan jenis hubungan. Biasanya,  diagram sebar  digunakan untuk membuktikan atau menyangkal hubungan sebab-akibat. </p>



<p>Seorang peneliti sedang mempelajari jamur. Mereka telah menemukan cincin jamur dan memberi label koordinat. Biasanya jamur menyebar keluar dari pusat jamur awal. Dengan koordinat di bawah ini, peneliti ingin menjawab pertanyaan: Kira-kira di manakah letak pusat pertumbuhan jamur? Buat bagan yang memungkinkan peneliti memperkirakan pusat pertumbuhan.</p>



<h2 class="wp-block-heading">Contoh Kasus</h2>



<h3 class="wp-block-heading">Data</h3>



<p>Berikut ini adalah data yang diberikan. X dan Y merupakan variabel koordinat lokasi pertumbuhan jamur.</p>



<pre class="wp-block-code"><code class="">x = [4.61, 5.08, 5.18, 7.82, 10.46, 7.66, 7.6, 9.32, 
14.04, 9.95, 4.95, 7.23, 5.21, 8.64, 10.08, 8.32, 
12.83, 7.51, 7.82, 6.29, 0.04, 6.62, 13.16, 6.34, 
0.09, 10.04, 13.06, 9.54, 11.32, 7.12, -0.67, 10.5, 
8.37, 7.24, 9.18, 10.12, 12.29, 8.53, 11.11, 9.65, 
9.42, 8.61, -0.67, 5.94, 6.49, 7.57, 3.11, 8.7, 5.28, 
8.28, 9.55, 8.33, 13.7, 6.65, 2.4, 3.54, 9.19, 7.51, 
-0.68, 8.47, 14.82, 5.31, 14.01, 8.75, -0.57, 5.35, 
10.51, 3.11, -0.26 , 5.74,8.33, 6.5, 13.85, 9.78, 4.91, 
4.19, 14.8, 10.04, 13.47, 3.28] 

y = [-2.36, -3.41, 13.01, -2.91, -2.28, 12.83, 13.13,
 11.94, 0.93, -2.76, 13.31, -3.57, -2.33, 12.43, -1.83, 
 12.32, -0.42, -3.08, -2.98, 12.46, 8.34, -3.19, -0.47, 
 12.78, 2.12, -2.72, 10.64, 11.98, 12.21, 12.52, 5.53, 
 11.72, 12.91, 12.56, -2.49, 12.08, -1.09, -2.89, -1.78, 
 -2.47, 12.77, 12.41, 5.33, -3.23, 13.45, -3.41, 12.46, 
 12.1, -2.56, 12.51, -2.37, 12.76, 9.69, 12.59, -1.12, 
 -2.8, 12.94, -3.55, 7.33, 12.59, 2.92, 12.7, 0.5, 
 12.57, 6.39, 12.84, -1.95, 11.76, 6.82, 12.44, 13.28, 
 -3.46, 0.7, -2.55, -2.37, 12.48, 7.26, -2.45, 0.31, -2.51]</code></pre>



<h2 class="wp-block-heading">Kode Program</h2>



<p>Kode program berikut ini digunakan untuk melakukan import library yang akan digunakan.</p>



<pre class="wp-block-code"><code lang="python" class="language-python">import matplotlib.pyplot as plt
</code></pre>



<p>Selanjutnya, memasukan data yang telah diberikan sebelumnya.</p>



<pre class="wp-block-code"><code lang="python" class="language-python">x = [4.61, 5.08, 5.18, 7.82, 10.46, 7.66, 7.6, 9.32, 
14.04, 9.95, 4.95, 7.23, 5.21, 8.64, 10.08, 8.32, 
12.83, 7.51, 7.82, 6.29, 0.04, 6.62, 13.16, 6.34, 
0.09, 10.04, 13.06, 9.54, 11.32, 7.12, -0.67, 10.5, 
8.37, 7.24, 9.18, 10.12, 12.29, 8.53, 11.11, 9.65, 
9.42, 8.61, -0.67, 5.94, 6.49, 7.57, 3.11, 8.7, 5.28, 
8.28, 9.55, 8.33, 13.7, 6.65, 2.4, 3.54, 9.19, 7.51, 
-0.68, 8.47, 14.82, 5.31, 14.01, 8.75, -0.57, 5.35, 
10.51, 3.11, -0.26 , 5.74,8.33, 6.5, 13.85, 9.78, 4.91, 
4.19, 14.8, 10.04, 13.47, 3.28] 

y = [-2.36, -3.41, 13.01, -2.91, -2.28, 12.83, 13.13,
 11.94, 0.93, -2.76, 13.31, -3.57, -2.33, 12.43, -1.83, 
 12.32, -0.42, -3.08, -2.98, 12.46, 8.34, -3.19, -0.47, 
 12.78, 2.12, -2.72, 10.64, 11.98, 12.21, 12.52, 5.53, 
 11.72, 12.91, 12.56, -2.49, 12.08, -1.09, -2.89, -1.78, 
 -2.47, 12.77, 12.41, 5.33, -3.23, 13.45, -3.41, 12.46, 
 12.1, -2.56, 12.51, -2.37, 12.76, 9.69, 12.59, -1.12, 
 -2.8, 12.94, -3.55, 7.33, 12.59, 2.92, 12.7, 0.5, 
 12.57, 6.39, 12.84, -1.95, 11.76, 6.82, 12.44, 13.28, 
 -3.46, 0.7, -2.55, -2.37, 12.48, 7.26, -2.45, 0.31, -2.51]</code></pre>



<p>Terakhir, ini merupakan kode untuk menampilkan diagram sebar.</p>



<pre class="wp-block-code"><code lang="python" class="language-python">plt.title('Area Pertumbuhan Jamur')
plt.scatter(x, y)
plt.show()</code></pre>



<p>Berikut ini merupakan tampilan scatter plot yang dihasilkan dari kode program</p>



<p> <img loading="lazy" decoding="async" width="600" height="417" class="wp-image-735" style="width: 600px;" src="https://onestringlab.com/wp-content/uploads/2022/06/scatterPlot.png" alt="Scatter Plot - Diagram Sebar" srcset="https://onestringlab.com/wp-content/uploads/2022/06/scatterPlot.png 380w, https://onestringlab.com/wp-content/uploads/2022/06/scatterPlot-300x208.png 300w" sizes="auto, (max-width: 600px) 100vw, 600px" /></p>



<h2 class="wp-block-heading">Contoh Kode Program Scatter Plot</h2>



<p>Berikut ini merupakan contoh kode program dalam pemanfaatan scatter plot.</p>



<pre class="wp-block-code"><code lang="python" class="language-python">import matplotlib.pyplot as plt

lemon_diameter = [6.44, 6.87, 7.7, 8.85, 8.15, 9.96, 7.21, 10.04, 10.2, 11.06] 
lemon_weight = [112.05, 114.58, 116.71, 117.4, 128.93, 132.93, 138.92, 145.98, 148.44, 152.81] 
lime_diameter = [6.15, 7.0, 7.0, 7.69, 7.95, 7.51, 10.46, 8.72, 9.53 , 10.09] 
lime_weight = [112.76, 125.16, 131.36, 132.41, 138.08, 142.55, 156.86, 158.67, 163.28, 166.74]

plt.title('Lemons vs. Limes')
plt.xlabel('Diameter (cm)')
plt.ylabel('Weight (g)')
plt.scatter(lemon_diameter, lemon_weight, color='y')
plt.scatter(lime_diameter, lime_weight, color='g')
plt.legend(['lemons', 'limes'])
plt.show()</code></pre>



<p> Berikut ini merupakan tampilan diagram sebar yang dihasilkan dari kode program </p>



<h2 class="wp-block-heading"><img loading="lazy" decoding="async" width="600" height="429" class="wp-image-738" style="width: 600px;" src="https://onestringlab.com/wp-content/uploads/2022/06/scatterPlot-Lime_Lemon.png" alt="" srcset="https://onestringlab.com/wp-content/uploads/2022/06/scatterPlot-Lime_Lemon.png 389w, https://onestringlab.com/wp-content/uploads/2022/06/scatterPlot-Lime_Lemon-300x214.png 300w, https://onestringlab.com/wp-content/uploads/2022/06/scatterPlot-Lime_Lemon-120x85.png 120w" sizes="auto, (max-width: 600px) 100vw, 600px" /></h2>



<h2 class="wp-block-heading">  Kesimpulan</h2>



<p>Bila diperhatikan pada pola titik yang terlihat pada diagram sebar maka akan dapat disimpulkan apakah kedua variabel tersebut memiliki hubungan atau tidak? Jika memiliki hubungan apakah hubungan postif atau negatif. Hubungan positif atinya semakin tinggi nilai x maka semakin tinggi pula nilai y sedangkan hubungan negatif  adalah apabila salah variabel meninggi nilainya maka variabelnya lainnya menjadi merendah.</p>



<p>Tentu saja cara yang sudah dijelaskan hanya merupakan salah satu dari sekian banyak cara yang disediakan oleh&nbsp;<a href="https://matplotlib.org/stable/api/_as_gen/matplotlib.pyplot.bar.html" target="_blank" rel="noreferrer noopener">Matplotlib&nbsp;</a>itu sendiri terkait diagram sebar. Kunjungi tautan ini untuk mengetahui tema&nbsp;<a href="https://onestringlab.com/tag/data-science/" target="_blank" rel="noreferrer noopener">data science</a>&nbsp;lainnya.  Semoga bermanfaat.</p>
<p>The post <a href="https://onestringlab.com/scatter-plot-visualisasi-data-dengan-matplotlib/">Belajar Data Science &#8211; Visualisasi Data dengan Scatter Plot Matplotlib</a> appeared first on <a href="https://onestringlab.com">Onestring Lab</a>.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Belajar Data Science &#8211; Visualisasi Data dengan Bar Chart Matplotlib</title>
		<link>https://onestringlab.com/bar-chart-visualisasi-data-dengan-matplotlib/</link>
		
		<dc:creator><![CDATA[Rajo Intan]]></dc:creator>
		<pubDate>Mon, 27 Dec 2021 04:38:30 +0000</pubDate>
				<category><![CDATA[Kode]]></category>
		<category><![CDATA[Bar Chart]]></category>
		<category><![CDATA[Data Science]]></category>
		<category><![CDATA[Matplotlib]]></category>
		<category><![CDATA[Pandas]]></category>
		<guid isPermaLink="false">https://onestringlab.com/?p=607</guid>

					<description><![CDATA[<p>Bar Chart atau diagram batang merupakan bentuk visualisasi yang digunakan untuk membandingkan data kategorikal. Hal ini serupa dengan diagram lingkaran atau pie chart yang juga &#8230; </p>
<p>The post <a href="https://onestringlab.com/bar-chart-visualisasi-data-dengan-matplotlib/">Belajar Data Science &#8211; Visualisasi Data dengan Bar Chart Matplotlib</a> appeared first on <a href="https://onestringlab.com">Onestring Lab</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<p>Bar Chart atau diagram batang merupakan bentuk visualisasi yang digunakan untuk membandingkan data kategorikal. Hal ini serupa dengan diagram lingkaran atau <a href="https://onestringlab.com/pie-chart-visualisasi-data-dengan-matplotlib/" target="_blank" rel="noreferrer noopener">pie chart </a>yang juga digunakan utnuk membandingkan kategori data satu sama lain. Namun, diagram lingkaran lebih spesifik untuk melihat bagaiman satu kategori data dibandingkan dengan keseluruhan data yang ada. Diagram batang tidak cocok untuk hal tersebut. Kelebihan dari diagram batang adalah dapat menampilkan lebih banyak kategori data daripada diagram lingkaran.</p>



<p>Pada tulisan ini akan dibahas bagaimana menampilkan visualiasi data dengan Matplotlib dalam bentuk bar chart atau diagram batang.</p>



<h2 class="wp-block-heading">Import Library</h2>



<p>Kode program berikut ini digunakan untuk melakukan import library yang akan digunakan.</p>



<pre class="wp-block-code"><code lang="python" class="language-python"><strong>import</strong> matplotlib.pyplot <strong>as</strong> plt
<code><strong>import</strong> pandas <strong>as</strong> pd</code></code></pre>



<h2 class="wp-block-heading">Mengambil data</h2>



<p>Data yang digunakan kali ini adalah data dari monster Pokemon.  Setelah data diambil maka ditambahkan 1 kolom yang bernama Count. Kolom ini berisi angka 1 yang akan digunakan untuk menghitung nantinya.</p>



<pre class="wp-block-code"><code lang="python" class="language-python">df <strong>=</strong> pd<strong>.</strong>read_csv('https://raw.githubusercontent.com/Onestringlab/notebook/main/pokemon_data.csv')
df['Count'] <strong>=</strong> 1
df<strong>.</strong>head()</code></pre>


<div class="wp-block-image">
<figure class="aligncenter size-full"><img loading="lazy" decoding="async" width="779" height="169" src="https://onestringlab.com/wp-content/uploads/2021/12/image-17.png" alt="" class="wp-image-614" srcset="https://onestringlab.com/wp-content/uploads/2021/12/image-17.png 779w, https://onestringlab.com/wp-content/uploads/2021/12/image-17-300x65.png 300w, https://onestringlab.com/wp-content/uploads/2021/12/image-17-768x167.png 768w" sizes="auto, (max-width: 779px) 100vw, 779px" /><figcaption class="wp-element-caption">Data monster Pokemon</figcaption></figure>
</div>


<h2 class="wp-block-heading">Menyiapkan data </h2>



<p>Diagram batang yang akan dibuat adalah mencari jumlah Type 1 dari seluruh data monster Pokemon yang ada. Langkah pertama yang dilakukan adalah melalukan grouping pada berdasarkan data Type 1. Grouping dilakukan dengan menggunakan perintah group by. Penjelasan mengenai group by dapat dilihat pada <a href="https://onestringlab.com/group-by-pandas-dataframe-untuk-perhitungan-data/">Group by Pandas DataFrame Untuk Perhitungan Data</a>. Setelah dilakukan grouping maka langkah berikutnya adalah diurutkan berdasarkan jumlah terkecil sampai terbesar. Berikut kode programnya.</p>



<pre class="wp-block-code"><code lang="python" class="language-python">data <strong>=</strong> df<strong>.</strong>groupby(['Type 1'])<strong>.</strong>count()<strong>.</strong>reset_index()
data<strong>.</strong>sort_values('Count', ascending<strong>=True</strong>, inplace<strong>=True</strong>)
data.head()</code></pre>


<div class="wp-block-image">
<figure class="aligncenter size-full is-resized"><img loading="lazy" decoding="async" src="https://onestringlab.com/wp-content/uploads/2021/12/image-18.png" alt="" class="wp-image-617" width="282" height="346"/><figcaption class="wp-element-caption">Jumlah monster Pokemon berdasarkan Type 1</figcaption></figure>
</div>


<h2 class="wp-block-heading">Membuat Bar Chart</h2>



<p>Berikut kode program untuk membuat bar char atau diagram batang.</p>



<pre class="wp-block-code"><code lang="python" class="language-python">fig <strong>=</strong> plt<strong>.</strong>figure(figsize<strong>=</strong>(6,4))
ax <strong>=</strong> plt<strong>.</strong>axes()
ax<strong>.</strong>bar(data['Type 1'],data['Count'])
plt<strong>.</strong>xticks(rotation<strong>=</strong>90)
plt<strong>.</strong>show()</code></pre>


<div class="wp-block-image">
<figure class="aligncenter size-full"><img loading="lazy" decoding="async" width="381" height="276" src="https://onestringlab.com/wp-content/uploads/2021/12/image-19.png" alt="Bar Chart jumlah monster Pokemon berdasarkan Type 1" class="wp-image-619" srcset="https://onestringlab.com/wp-content/uploads/2021/12/image-19.png 381w, https://onestringlab.com/wp-content/uploads/2021/12/image-19-300x217.png 300w" sizes="auto, (max-width: 381px) 100vw, 381px" /><figcaption class="wp-element-caption">Bar Chart jumlah monster Pokemon berdasarkan Type 1</figcaption></figure>
</div>


<h2 class="wp-block-heading">Memberi warna dan judul </h2>



<p>Berikut ini cara memberi warna dan judul pada diagram batang.</p>



<pre class="wp-block-code"><code lang="python" class="language-python">fig <strong>=</strong> plt<strong>.</strong>figure(figsize<strong>=</strong>(6,4))
ax <strong>=</strong> plt<strong>.</strong>axes()

colors <strong>=</strong> ['#0000FF' <strong>for</strong> _ <strong>in</strong> range(len(data))]
colors[<strong>-</strong>1] <strong>=</strong> '#FF0000'

plt<strong>.</strong>ylabel('Jumlah')
plt<strong>.</strong>title('Pokemon Type 1')

ax<strong>.</strong>bar(data['Type 1'],data['Count'], color<strong>=</strong>colors)
plt<strong>.</strong>xticks(rotation<strong>=</strong>90)
plt<strong>.</strong>show()</code></pre>


<div class="wp-block-image">
<figure class="aligncenter size-full"><img loading="lazy" decoding="async" width="395" height="294" src="https://onestringlab.com/wp-content/uploads/2021/12/image-20.png" alt="" class="wp-image-621" srcset="https://onestringlab.com/wp-content/uploads/2021/12/image-20.png 395w, https://onestringlab.com/wp-content/uploads/2021/12/image-20-300x223.png 300w" sizes="auto, (max-width: 395px) 100vw, 395px" /><figcaption class="wp-element-caption">Diagram batang dengan warna, judul dan label.</figcaption></figure>
</div>


<h2 class="wp-block-heading">Membuat Diagram Batang Multi Kategori</h2>



<p>Pada bagian ini akan dibuat diagram batang yang memiliki multi kategori. Diagram batang yang akan dibuat adalah untuk mengetahui berapa jumlah monster legendary pada kategorical Type 1. Visualiasi ini akan ditampilkan dalam bentuk stack atau tumpukkan dan dalam bentuk batang yang terpisah.</p>



<h3 class="wp-block-heading">Menyiapkan Data</h3>



<p>Melakukan group by dengan 2 kategori.</p>



<pre class="wp-block-code"><code lang="python" class="language-python">data <strong>=</strong> df<strong>.</strong>groupby(['Type 1', 'Legendary'])<strong>.</strong>count()[['Count']]<strong>.</strong>reset_index()
data <strong>=</strong> data<strong>.</strong>set_index(['Type 1', 'Legendary'])<strong>.</strong>Count
data<strong>.</strong>head()</code></pre>


<div class="wp-block-image">
<figure class="aligncenter size-full is-resized"><img loading="lazy" decoding="async" src="https://onestringlab.com/wp-content/uploads/2021/12/image-21.png" alt="" class="wp-image-626" width="433" height="253"/><figcaption class="wp-element-caption">Data yang telah dilakukan goruping 2 kategori yaitu Type 1 dan Legendary</figcaption></figure>
</div>


<h3 class="wp-block-heading">Membuat Stacked Bar Chart</h3>



<pre class="wp-block-code"><code lang="python" class="language-python">data<strong>.</strong>unstack()<strong>.</strong>plot(kind <strong>=</strong> 'bar', stacked <strong>=</strong> <strong>True</strong>)</code></pre>


<div class="wp-block-image">
<figure class="aligncenter size-full is-resized"><img loading="lazy" decoding="async" src="https://onestringlab.com/wp-content/uploads/2021/12/image-22.png" alt="Stacked Bar Chart" class="wp-image-627" width="461" height="371" srcset="https://onestringlab.com/wp-content/uploads/2021/12/image-22.png 377w, https://onestringlab.com/wp-content/uploads/2021/12/image-22-300x241.png 300w" sizes="auto, (max-width: 461px) 100vw, 461px" /><figcaption class="wp-element-caption">Stacked Bar Chart</figcaption></figure>
</div>


<h3 class="wp-block-heading">Membuat Unstacked Bar Chart</h3>



<pre class="wp-block-preformatted">data<strong>.</strong>unstack()<strong>.</strong>plot(kind <strong>=</strong> 'bar', stacked <strong>=</strong> <strong>False</strong>)</pre>


<div class="wp-block-image">
<figure class="aligncenter size-full is-resized"><img loading="lazy" decoding="async" src="https://onestringlab.com/wp-content/uploads/2021/12/image-23.png" alt="Unstacked Bar Chart" class="wp-image-628" width="466" height="374" srcset="https://onestringlab.com/wp-content/uploads/2021/12/image-23.png 381w, https://onestringlab.com/wp-content/uploads/2021/12/image-23-300x240.png 300w" sizes="auto, (max-width: 466px) 100vw, 466px" /><figcaption class="wp-element-caption">Unstacked Bar Chart</figcaption></figure>
</div>


<h2 class="wp-block-heading">Kesimpulan</h2>



<p>Proses melakukan visualisasi data dalam bentuk diagram batang dengan menggunakan Matplotlib dapat dikatakan sangat mudah. Namun, tentu saja cara yang sudah dijelaskan hanya merupakan salah satu dari sekian banyak cara yang disediakan oleh&nbsp;<a href="https://matplotlib.org/stable/api/_as_gen/matplotlib.pyplot.bar.html" target="_blank" rel="noreferrer noopener">Matplotlib&nbsp;</a>itu sendiri terkait diagram ini. Kunjungi tautan ini untuk mengetahui tema&nbsp;<a href="https://onestringlab.com/tag/data-science/" target="_blank" rel="noreferrer noopener">data science</a>&nbsp;lainnya.</p>
<p>The post <a href="https://onestringlab.com/bar-chart-visualisasi-data-dengan-matplotlib/">Belajar Data Science &#8211; Visualisasi Data dengan Bar Chart Matplotlib</a> appeared first on <a href="https://onestringlab.com">Onestring Lab</a>.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Belajar Data Science &#8211; Visualisasi Data dengan Pie Chart Matplotlib</title>
		<link>https://onestringlab.com/pie-chart-visualisasi-data-dengan-matplotlib/</link>
		
		<dc:creator><![CDATA[Rajo Intan]]></dc:creator>
		<pubDate>Mon, 20 Dec 2021 13:22:10 +0000</pubDate>
				<category><![CDATA[Kode]]></category>
		<category><![CDATA[Data Science]]></category>
		<category><![CDATA[Dataframe]]></category>
		<category><![CDATA[Pandas]]></category>
		<category><![CDATA[Pie Chart]]></category>
		<guid isPermaLink="false">https://onestringlab.com/?p=566</guid>

					<description><![CDATA[<p>Diagram lingkaran atau pie chart merupakan grafik statistik yang berbentuk lingkaran. Lingkaran tersebut terbagi menjadi beberapa irisan dan luasnya tergantung pada proposi data. Diagram lingkaran &#8230; </p>
<p>The post <a href="https://onestringlab.com/pie-chart-visualisasi-data-dengan-matplotlib/">Belajar Data Science &#8211; Visualisasi Data dengan Pie Chart Matplotlib</a> appeared first on <a href="https://onestringlab.com">Onestring Lab</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<p>Diagram lingkaran atau pie chart merupakan grafik statistik yang berbentuk lingkaran. Lingkaran tersebut terbagi menjadi beberapa irisan dan luasnya tergantung pada proposi data.  Diagram lingkaran  digunakan untuk menunjukkan seberapa banyak dari setiap jenis kategori dalam dataset berbanding dengan keseluruhan. Pada bagian ini akan dibuat diagram lingkaran menggunakan kumpulan data sampel. </p>



<p>Variabel label berisi tupel jenis permen. Variabel voting berisi tupel voting. Data tersebut mewakili jumlah voting jenis permen favorit. Pembuatan grafik menggunakan library Pyplot Matplotlib. Method plt.pie () digunakan untuk membuat antarmuka diagram lingkaran berdasarkan data jenis permen dan jumlah setiap jenis permen tesebut.</p>



<h2 class="wp-block-heading">Contoh Kasus</h2>



<p>Sesorang memiliki sekantong permen. Terdapat lima jenis permen, masing-masing diberi nama di bawah ini. Buat diagram yang menunjukkan persentase peluang bahwa akan mengeluarkan permen Snickers dari kantong jika dilakukan pengambilan acak. Sebutkan peluang memilih permen Snickers.</p>



<h2 class="wp-block-heading">Import Library Matplolib</h2>



<p>Pada bagian ini akan diperlihat kode program untuk import libary Pandas dan Matplotlib.</p>



<h2 class="wp-block-heading">Data Permen Favorit</h2>



<p>Berikut ini merupakan data permen favorit yang terdiri dari nama permen dan jumlah orang yang menyukainnya. Selain itu, ditambahkan beberapa data untuk tampilan diagram lingkaran.</p>



<pre class="wp-block-preformatted">candy_names <strong>=</strong> ['Kit Kat', 'Snickers', 'Milky Way', 'Toblerone', 'Twix']
candy_counts <strong>=</strong> [52, 39, 90, 13, 78]
colors <strong>=</strong> ('#8B4513', '#FFF8DC', '#93C572', '#E67F0D', '#D53032')
explode <strong>=</strong> (0, 0, 0.1, 0, 0)</pre>



<h2 class="wp-block-heading">Membuat Pie Chart dengan Matplotlib</h2>



<p>Pada bagian ini akan dijelaskan mengenai cara membuat diagram lingkaran.</p>



<pre class="wp-block-preformatted">fig <strong>=</strong> plt<strong>.</strong>figure()
ax <strong>=</strong> plt<strong>.</strong>axes()</pre>


<div class="wp-block-image">
<figure class="aligncenter size-full"><img loading="lazy" decoding="async" width="384" height="258" src="https://onestringlab.com/wp-content/uploads/2021/12/image-11.png" alt="" class="wp-image-567" srcset="https://onestringlab.com/wp-content/uploads/2021/12/image-11.png 384w, https://onestringlab.com/wp-content/uploads/2021/12/image-11-300x202.png 300w" sizes="auto, (max-width: 384px) 100vw, 384px" /><figcaption class="wp-element-caption">Tempat pie chart atau diagram lingkaran</figcaption></figure>
</div>


<h3 class="wp-block-heading">Menampilkan pie chart</h3>



<pre class="wp-block-preformatted">fig <strong>=</strong> plt<strong>.</strong>figure(figsize<strong>=</strong>(6,6))
ax <strong>=</strong> plt<strong>.</strong>axes()
ax<strong>.</strong>pie(candy_counts, labels <strong>=</strong> candy_names)</pre>


<div class="wp-block-image">
<figure class="aligncenter size-full"><img loading="lazy" decoding="async" width="392" height="315" src="https://onestringlab.com/wp-content/uploads/2021/12/image-12.png" alt="" class="wp-image-569" srcset="https://onestringlab.com/wp-content/uploads/2021/12/image-12.png 392w, https://onestringlab.com/wp-content/uploads/2021/12/image-12-300x241.png 300w" sizes="auto, (max-width: 392px) 100vw, 392px" /><figcaption class="wp-element-caption">Diagram lingkaran permen favorit</figcaption></figure>
</div>


<h3 class="wp-block-heading">Menambahkan nilai presentase </h3>



<pre class="wp-block-preformatted">fig <strong>=</strong> plt<strong>.</strong>figure(figsize<strong>=</strong>(6,6))
ax <strong>=</strong> plt<strong>.</strong>axes()
ax<strong>.</strong>pie(candy_counts, labels <strong>=</strong> candy_names, autopct<strong>=</strong>'%1.0f%%')</pre>


<div class="wp-block-image">
<figure class="aligncenter size-full"><img loading="lazy" decoding="async" width="381" height="318" src="https://onestringlab.com/wp-content/uploads/2021/12/image-13.png" alt="Diagram lingkaran dengan nilai presentase" class="wp-image-574" srcset="https://onestringlab.com/wp-content/uploads/2021/12/image-13.png 381w, https://onestringlab.com/wp-content/uploads/2021/12/image-13-300x250.png 300w" sizes="auto, (max-width: 381px) 100vw, 381px" /><figcaption class="wp-element-caption">Diagram lingkaran dengan nilai presentase</figcaption></figure>
</div>


<h3 class="wp-block-heading">Menambahkan judul pada diagram</h3>



<pre class="wp-block-preformatted">fig <strong>=</strong> plt<strong>.</strong>figure(figsize<strong>=</strong>(6,6))
ax <strong>=</strong> plt<strong>.</strong>axes()
ax<strong>.</strong>pie(candy_counts, labels <strong>=</strong> candy_names, autopct<strong>=</strong>'%1.0f%%')
ax<strong>.</strong>set_title('Diagram Permen Favorit')</pre>


<div class="wp-block-image">
<figure class="aligncenter size-full"><img loading="lazy" decoding="async" width="367" height="332" src="https://onestringlab.com/wp-content/uploads/2021/12/image-14.png" alt="Menambahkan judul pada pie chart" class="wp-image-575" srcset="https://onestringlab.com/wp-content/uploads/2021/12/image-14.png 367w, https://onestringlab.com/wp-content/uploads/2021/12/image-14-300x271.png 300w" sizes="auto, (max-width: 367px) 100vw, 367px" /><figcaption class="wp-element-caption">Menambahkan judul pada pie chart</figcaption></figure>
</div>


<h3 class="wp-block-heading">Merubah warna irisan</h3>



<pre class="wp-block-preformatted">fig <strong>=</strong> plt<strong>.</strong>figure(figsize<strong>=</strong>(6,6))
ax <strong>=</strong> plt<strong>.</strong>axes()
ax<strong>.</strong>pie(candy_counts, labels <strong>=</strong> candy_names, autopct<strong>=</strong>'%1.0f%%', colors<strong>=</strong>colors)
ax<strong>.</strong>set_title('Diagram Permen Favorit')</pre>


<div class="wp-block-image">
<figure class="aligncenter size-full"><img loading="lazy" decoding="async" width="369" height="323" src="https://onestringlab.com/wp-content/uploads/2021/12/image-15.png" alt="Pie chart menggunakan warna yang ditentukan" class="wp-image-577" srcset="https://onestringlab.com/wp-content/uploads/2021/12/image-15.png 369w, https://onestringlab.com/wp-content/uploads/2021/12/image-15-300x263.png 300w" sizes="auto, (max-width: 369px) 100vw, 369px" /><figcaption class="wp-element-caption">Pie chart menggunakan warna yang ditentukan</figcaption></figure>
</div>


<h3 class="wp-block-heading">Membelah diagram lingkaran</h3>



<p>Membelah diagram lingkaran artinya adalah irisan ditarik keluar sedikit dari keseluruhan diagram. Biasanya irisan yang ditarik keluar adalah irisan yang bernilai paling tinggi.</p>



<pre class="wp-block-preformatted">fig <strong>=</strong> plt<strong>.</strong>figure(figsize<strong>=</strong>(6,6))
ax <strong>=</strong> plt<strong>.</strong>axes()
ax<strong>.</strong>pie(candy_counts, labels <strong>=</strong> candy_names, autopct<strong>=</strong>'%1.0f%%', colors<strong>=</strong>colors
       ,explode<strong>=</strong>explode)
ax<strong>.</strong>set_title('Diagram Permen Favorit')</pre>


<div class="wp-block-image">
<figure class="aligncenter size-full"><img loading="lazy" decoding="async" width="373" height="343" src="https://onestringlab.com/wp-content/uploads/2021/12/image-16.png" alt="" class="wp-image-579" srcset="https://onestringlab.com/wp-content/uploads/2021/12/image-16.png 373w, https://onestringlab.com/wp-content/uploads/2021/12/image-16-300x276.png 300w" sizes="auto, (max-width: 373px) 100vw, 373px" /><figcaption class="wp-element-caption">Membelah diagram lingkaran</figcaption></figure>
</div>


<h2 class="wp-block-heading">Kesimpulan Pie Chart-Visualisasi Data</h2>



<p>Jawaban dari pertanyaan soal mengenai peluang dari Snickers didapatkan jika diambil dari kantong secara acak adalah 14% atau 0.14. Peluang terbesar untuk terambil dari kantong permen tersebut adalah Milky Way yaitu sebesar 33%, sedangkan yang terkecil adalah Toblerone sebesar 5% saja.</p>



<p>Proses melakukan visualisasi data dalam bentuk diagram lingkaran dengan menggunakan Matplotlib dapat dikatakan sangat mudah. Namun, tentu saja cara yang sudah dijelaskan hanya merupakan salah satu dari sekian banyak cara yang disediakan oleh&nbsp;<a href="https://matplotlib.org/stable/gallery/pie_and_polar_charts/pie_features.html" target="_blank" rel="noreferrer noopener">Matplotlib&nbsp;</a>itu sendiri terkait diagram ini. Kunjungi tautan ini untuk mengetahui tema&nbsp;<a href="https://onestringlab.com/tag/data-science/" target="_blank" rel="noreferrer noopener">data science</a> lainnya.</p>
<p>The post <a href="https://onestringlab.com/pie-chart-visualisasi-data-dengan-matplotlib/">Belajar Data Science &#8211; Visualisasi Data dengan Pie Chart Matplotlib</a> appeared first on <a href="https://onestringlab.com">Onestring Lab</a>.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Belajar Data Science &#8211; Visualisasi Data dengan Line Chart Matplotlib</title>
		<link>https://onestringlab.com/line-chart-visualisasi-data-dengan-matplotlib/</link>
		
		<dc:creator><![CDATA[Rajo Intan]]></dc:creator>
		<pubDate>Sun, 19 Dec 2021 15:05:18 +0000</pubDate>
				<category><![CDATA[Kode]]></category>
		<category><![CDATA[Data Science]]></category>
		<category><![CDATA[Line Chart]]></category>
		<category><![CDATA[Matplotlib]]></category>
		<category><![CDATA[Visualisasi Data]]></category>
		<guid isPermaLink="false">https://onestringlab.com/?p=516</guid>

					<description><![CDATA[<p>Diagram garis atau line chart merupakan salah satu bentuk visualisasi data. Modul yang akan digunakan adalah Matplotlib. Diagram garis digunakan untuk menunjukkan perubahan data selama &#8230; </p>
<p>The post <a href="https://onestringlab.com/line-chart-visualisasi-data-dengan-matplotlib/">Belajar Data Science &#8211; Visualisasi Data dengan Line Chart Matplotlib</a> appeared first on <a href="https://onestringlab.com">Onestring Lab</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<p>Diagram garis atau line chart merupakan salah satu bentuk visualisasi data. Modul yang akan digunakan adalah Matplotlib. Diagram garis digunakan untuk menunjukkan perubahan data selama periode tertentu. Misalnya, diagram garis dapat berguna untuk membuat  diagram  penjualan saham,  diagram  harga sebuah produk dari waktu ke waktu.</p>



<h2 class="wp-block-heading">Contoh Kasus</h2>



<p>Diketahui daftar harga Bitcoin yang dicatat setiap akhir minggu (Minggu) di 2018 dan 2019. Buat visualisasi yang memungkinkan Anda menjawab pertanyaan: Tahun apa, 2018 atau 2019, yang cenderung memberikan pengembalian yang lebih baik bagi pemegang Bitcoin?</p>



<h2 class="wp-block-heading">Import Library Matplolib</h2>



<p>Pada bagian ini akan diperlihat kode program untuk import libary Pandas dan Matplotlib.</p>



<pre class="wp-block-code"><code lang="python" class="language-python">import matplotlib.pyplot as plt
import pandas as pd
import numpy as npt</code></pre>



<h2 class="wp-block-heading">Data Harga Bitcoin</h2>



<p>Berikut ini merupakan data harga bitcoin dalam setiap minggunya. Data terdiri dari 104 minggu dalam kurun waktu selama 2 tahun yaitu tahun 2018 dan 2019. </p>



<pre class="wp-block-code"><code lang="python" class="language-python">prices = [
14292.2, 12858.9, 11467.5, 9241.1, 8559.6, 11073.5, 9704.3 , 11402.3, 
8762.0, 7874.9, 8547.4, 6938.2, 6905.7, 8004.4, 8923.1, 9352.4, 9853.5, 
8459.5, 8245.1, 7361.3, 7646.6, 7515.8, 6505.8, 6167.3, 6398.9, 6765.5, 
6254.8, 7408.7, 8234.1, 7014.3, 6231.6, 6379.1, 6734.8, 7189.6, 6184.3, 
6519.0, 6729.6, 6603.9, 6596.3, 6321.7, 6572.2, 6494.2, 6386.2, 6427.1, 
5621.8, 3920.4, 4196.2, 3430.4, 3228.7, 3964.4, 3706.8, 3785.4, 3597.2, 
3677.8, 3570.9, 3502.5, 3661.4, 3616.8, 4120.4, 3823.1, 3944.3, 4006.4, 
4002.5, 4111.8, 5046.2, 5051.8, 5290.2, 5265.9, 5830.9, 7190.3, 7262.6, 
8027.4, 8545.7, 7901.4, 8812.5, 10721.7, 11906.5, 11268.0, 11364.9 , 
10826.7, 9492.1, 10815.7, 11314.5, 10218.1, 10131.0, 9594.4, 10461.1, 
10337.3, 9993.0, 8208.5, 8127.3, 8304.4, 7957.3, 9230.6, 9300.6, 8804.5, 
8497.3, 7324.1, 7546.6, 7510.9, 7080.8, 7156.2, 7321.5, 7376.8
]</code></pre>



<h2 class="wp-block-heading">Membuat data Weeks</h2>



<p>Sebelum membuat dataframe yang akan menjadi sumber data utama diperlukan tambahan 1 buah variabel yaitu Week. Variabel ini akan menjadi sumbu X dan harga bitcoin akan menjadi sumbu Y. Setelah variabel Week terbentuk maka proses selanjutnya adalah membuat dataframe dari kedua variabel tersebut. Berikut ini kode programnya.</p>



<pre class="wp-block-code"><code lang="python" class="language-python">weeks = list(range(1, len(prices)+1))
df = pd.DataFrame({'Week': weeks, 'Price': prices })
df.head()</code></pre>


<div class="wp-block-image">
<figure class="aligncenter size-full is-resized"><img loading="lazy" decoding="async" src="https://onestringlab.com/wp-content/uploads/2021/12/image.png" alt="" class="wp-image-521" width="225" height="294"/><figcaption class="wp-element-caption">Dataframe bitcoin setiap pekan</figcaption></figure>
</div>


<h2 class="wp-block-heading">Membagi dataframe menjadi 2 bagian</h2>



<p>Pada bagian ini data akan dibagi menjadi 2 bagian yaitu pekan ke 1-52 menjadi dataframe tahun 2018 dan pekan 53-104 menjadi dataframe tahun 2019. Berikut ini kode programnya.</p>



<pre class="wp-block-code"><code class="">df2018 = df[0:52]
df2018.head()</code></pre>


<div class="wp-block-image">
<figure class="aligncenter size-full is-resized"><img loading="lazy" decoding="async" src="https://onestringlab.com/wp-content/uploads/2021/12/image-1.png" alt="" class="wp-image-522" width="174" height="226"/><figcaption class="wp-element-caption">Dataframe bitcoin tahun 2018</figcaption></figure>
</div>


<pre class="wp-block-code"><code class="">df2019 = df[52:104]
df2019.head()</code></pre>


<div class="wp-block-image">
<figure class="aligncenter size-full is-resized"><img loading="lazy" decoding="async" src="https://onestringlab.com/wp-content/uploads/2021/12/image-2.png" alt="" class="wp-image-523" width="166" height="212"/><figcaption class="wp-element-caption">Dataframe bitcoin tahun 2019</figcaption></figure>
</div>


<h2 class="wp-block-heading">Membuat visualisasi data dengan Matplotlib</h2>



<p>Pada bagian ini akan dijelaskan mengenai cara membuat  diagram  garis. </p>



<h3 class="wp-block-heading">Membuat tempat visualisasi data</h3>



<pre class="wp-block-code"><code lang="python" class="language-python">fig <strong>=</strong> plt<strong>.</strong>figure()
ax <strong>=</strong> plt<strong>.</strong>axes()</code></pre>


<div class="wp-block-image">
<figure class="aligncenter size-full"><img loading="lazy" decoding="async" width="386" height="251" src="https://onestringlab.com/wp-content/uploads/2021/12/image-3.png" alt="Tempat visualisasi data" class="wp-image-524" srcset="https://onestringlab.com/wp-content/uploads/2021/12/image-3.png 386w, https://onestringlab.com/wp-content/uploads/2021/12/image-3-300x195.png 300w" sizes="auto, (max-width: 386px) 100vw, 386px" /><figcaption class="wp-element-caption">Tempat visualisasi data</figcaption></figure>
</div>


<h3 class="wp-block-heading">Menambahkan line chart</h3>



<pre class="wp-block-code"><code lang="python" class="language-python">fig <strong>=</strong> plt<strong>.</strong>figure(figsize<strong>=</strong>(6,4))
ax <strong>=</strong> plt<strong>.</strong>axes()
ax<strong>.</strong>plot(df2018['Week'],df2018['Price'])</code></pre>


<div class="wp-block-image">
<figure class="aligncenter size-full"><img loading="lazy" decoding="async" width="384" height="247" src="https://onestringlab.com/wp-content/uploads/2021/12/image-4.png" alt="Diagram garis bitcoin tahun 2018" class="wp-image-525" srcset="https://onestringlab.com/wp-content/uploads/2021/12/image-4.png 384w, https://onestringlab.com/wp-content/uploads/2021/12/image-4-300x193.png 300w" sizes="auto, (max-width: 384px) 100vw, 384px" /><figcaption class="wp-element-caption"> Line chart atau  diagram  garis  bitcoin tahun 2018</figcaption></figure>
</div>


<pre class="wp-block-code"><code lang="python" class="language-python">fig <strong>=</strong> plt<strong>.</strong>figure(figsize<strong>=</strong>(6,4))
ax <strong>=</strong> plt<strong>.</strong>axes()
ax<strong>.</strong>plot(df2019['Week'],df2019['Price'])</code></pre>


<div class="wp-block-image">
<figure class="aligncenter size-full"><img loading="lazy" decoding="async" width="392" height="257" src="https://onestringlab.com/wp-content/uploads/2021/12/image-5.png" alt="Diagram garis bitcoin tahun 2019" class="wp-image-526" srcset="https://onestringlab.com/wp-content/uploads/2021/12/image-5.png 392w, https://onestringlab.com/wp-content/uploads/2021/12/image-5-300x197.png 300w" sizes="auto, (max-width: 392px) 100vw, 392px" /><figcaption class="wp-element-caption"> Diagram  garis bitcoin tahun 2019</figcaption></figure>
</div>


<h3 class="wp-block-heading">Menggabungkan 2 Line Chart</h3>



<pre class="wp-block-code"><code lang="python" class="language-python">fig <strong>=</strong> plt<strong>.</strong>figure(figsize<strong>=</strong>(6,4))
ax <strong>=</strong> plt<strong>.</strong>axes()
ax<strong>.</strong>plot(df2018['Week'],df2018['Price'])
ax<strong>.</strong>plot(df2019['Week'],df2019['Price'])</code></pre>


<div class="wp-block-image">
<figure class="aligncenter size-full"><img loading="lazy" decoding="async" width="390" height="250" src="https://onestringlab.com/wp-content/uploads/2021/12/image-6.png" alt="Visualisasi data dua diagram garis " class="wp-image-527" srcset="https://onestringlab.com/wp-content/uploads/2021/12/image-6.png 390w, https://onestringlab.com/wp-content/uploads/2021/12/image-6-300x192.png 300w" sizes="auto, (max-width: 390px) 100vw, 390px" /><figcaption class="wp-element-caption">Visualisasi data dua line chart atau   diagram garis </figcaption></figure>
</div>


<h3 class="wp-block-heading">Memberikan title dan label pada line chart</h3>



<p>Judul dapat ditambahkan pada diagram yang dibuat. Perintah set_title() digunakan untuk menampilkan judul pada diagram. Untuk label sumbu x digunakan perintah set_xlabel() sedangkan sumbu y digunakan perintah set_ylabel().</p>



<pre class="wp-block-code"><code lang="python" class="language-python">fig <strong>=</strong> plt<strong>.</strong>figure(figsize<strong>=</strong>(6,4))
ax <strong>=</strong> plt<strong>.</strong>axes()
ax<strong>.</strong>plot(df2018['Week'],df2018['Price'])
ax<strong>.</strong>plot(df2019['Week'],df2019['Price'])
ax<strong>.</strong>set_title('Bitcoin Price 2018- 2019')
ax<strong>.</strong>set_ylabel('Price')
ax<strong>.</strong>set_xlabel('Week')</code></pre>


<div class="wp-block-image">
<figure class="aligncenter size-full"><img loading="lazy" decoding="async" width="417" height="273" src="https://onestringlab.com/wp-content/uploads/2021/12/image-7.png" alt="Line chart atau  diagram  garis bitcoin tahun 2018-2019" class="wp-image-529" srcset="https://onestringlab.com/wp-content/uploads/2021/12/image-7.png 417w, https://onestringlab.com/wp-content/uploads/2021/12/image-7-300x196.png 300w" sizes="auto, (max-width: 417px) 100vw, 417px" /><figcaption class="wp-element-caption">Line chart atau  diagram  garis bitcoin tahun 2018-2019</figcaption></figure>
</div>


<h3 class="wp-block-heading">Merubah warna dan tipe garis</h3>



<p>Pada bagian ini dicontohkan untuk merubah warna garis dan tipe garis yang digunakan. Label 2018 diberi kode &#8220;co&#8221; yang artinya &#8220;c&#8221; itu cyan dan &#8220;o&#8221; itu jenis garis  ang dalam bentuk bulat. Sedangkan label 2019 memilki kode &#8220;m^&#8221; yang artinya m itu magentha dan &#8220;^&#8221; itu jenis garis yang dalam bentuk segitiga</p>



<pre class="wp-block-code"><code lang="python" class="language-python">fig <strong>=</strong> plt<strong>.</strong>figure(figsize<strong>=</strong>(6,4))
ax <strong>=</strong> plt<strong>.</strong>axes()
ax<strong>.</strong>plot(df2018['Week'],df2018['Price'],'co')
ax<strong>.</strong>plot(df2019['Week'],df2019['Price'],'m^')
ax<strong>.</strong>set_title('Bitcoin Price 2018- 2019')
ax<strong>.</strong>set_ylabel('Price')
ax<strong>.</strong>set_xlabel('Week')</code></pre>


<div class="wp-block-image">
<figure class="aligncenter size-full"><img loading="lazy" decoding="async" width="401" height="269" src="https://onestringlab.com/wp-content/uploads/2021/12/image-8.png" alt="Dua diagram garis beda tipe dan warna" class="wp-image-530" srcset="https://onestringlab.com/wp-content/uploads/2021/12/image-8.png 401w, https://onestringlab.com/wp-content/uploads/2021/12/image-8-300x201.png 300w" sizes="auto, (max-width: 401px) 100vw, 401px" /><figcaption class="wp-element-caption">Dua line chart atau grafik garis beda tipe dan warna</figcaption></figure>
</div>


<h3 class="wp-block-heading">Mengatur ukuran sumbu X dan Y pada line chart</h3>



<p>Untuk dapat melihat diagram lebih jelas dapat dilakukan dengan mengatur range nilai data. Pada contoh telihat bahwa x  bernilai  dari 0-104 , sedangkan nilai y memiliki rentan darii 1000-20000.</p>



<pre class="wp-block-code"><code lang="python" class="language-python">fig <strong>=</strong> plt<strong>.</strong>figure(figsize<strong>=</strong>(6,4))
ax <strong>=</strong> plt<strong>.</strong>axes()
ax<strong>.</strong>plot(df2018['Week'],df2018['Price'],'co')
ax<strong>.</strong>plot(df2019['Week'],df2019['Price'],'m^')
ax<strong>.</strong>set_xlim(0,104)
ax<strong>.</strong>set_ylim(1000,20000)
ax<strong>.</strong>set_title('Bitcoin Price 2018- 2019')
ax<strong>.</strong>set_ylabel('Price')
ax<strong>.</strong>set_xlabel('Week')</code></pre>


<div class="wp-block-image">
<figure class="aligncenter size-full"><img loading="lazy" decoding="async" width="399" height="270" src="https://onestringlab.com/wp-content/uploads/2021/12/image-9.png" alt="Mengatur ukuran sumbu X dan Y pada line chart" class="wp-image-531" srcset="https://onestringlab.com/wp-content/uploads/2021/12/image-9.png 399w, https://onestringlab.com/wp-content/uploads/2021/12/image-9-300x203.png 300w" sizes="auto, (max-width: 399px) 100vw, 399px" /><figcaption class="wp-element-caption">Mengatur ukuran sumbu X dan Y pada line chart</figcaption></figure>
</div>


<h3 class="wp-block-heading">Menambahkan legend label</h3>



<p>Legend pada diagram merupakan keterangan yang menunjukkan warna atau pola yang digunakan pada setiap label. Pada contoh terdapat 2 label yaitu 2018 dan 2019.</p>



<pre class="wp-block-code"><code lang="python" class="language-python">fig <strong>=</strong> plt<strong>.</strong>figure(figsize<strong>=</strong>(6,4))
ax <strong>=</strong> plt<strong>.</strong>axes()
ax<strong>.</strong>plot(df2018['Week'],df2018['Price'],'c+', label<strong>=</strong>"2018")
ax<strong>.</strong>plot(df2019['Week'],df2019['Price'],'m2', label<strong>=</strong>"2019")
ax<strong>.</strong>set_xlim(0,104)
ax<strong>.</strong>set_ylim(0,20000)
ax<strong>.</strong>set_title('Bitcoin Price 2018- 2019')
ax<strong>.</strong>set_ylabel('Price')
ax<strong>.</strong>set_xlabel('Week')
ax<strong>.</strong>legend(loc<strong>=</strong>"upper center", ncol<strong>=</strong>2, shadow<strong>=</strong><strong>True</strong>, borderpad<strong>=</strong>1);</code></pre>


<div class="wp-block-image">
<figure class="aligncenter size-full"><img loading="lazy" decoding="async" width="407" height="273" src="https://onestringlab.com/wp-content/uploads/2021/12/image-10.png" alt="Menambahkan legend label pada  line chart" class="wp-image-532" srcset="https://onestringlab.com/wp-content/uploads/2021/12/image-10.png 407w, https://onestringlab.com/wp-content/uploads/2021/12/image-10-300x201.png 300w" sizes="auto, (max-width: 407px) 100vw, 407px" /><figcaption class="wp-element-caption">Menambahkan legend label pada  line chart</figcaption></figure>
</div>


<h2 class="wp-block-heading">Kesimpulan Line Chart &#8211; Visualisasi Data </h2>



<p>Jawaban dari soal yang telah diberikan adalah tahun 2019. Pada tahun 2019 terlihat harga dari bitcoin meningkat pesat. Namun, pada pertengahan tahun terlihat menurun walaupun turunnya landai saja. Harga bitcoin di tahun 2018 cenderung terus menurun dari awal tahun sampai dengan akhir tahun.</p>



<p>Proses melakukan visualisasi data dengan menggunakan Matplotlib dapat dikatakan sangat mudah. Namun, tentu saja cara yang sudah dijelaskan hanya merupakan salah satu dari sekian banyak cara yang disediakan oleh <a href="https://matplotlib.org/stable/api/_as_gen/matplotlib.pyplot.plot.html" target="_blank" rel="noreferrer noopener">Matplotlib </a>itu sendiri. Pada artikel ini hanya membahas satu bentuk visualisasi data yaitu grafik garis.  Kunjungi tautan ini untuk mengetahui tema <a href="https://onestringlab.com/tag/data-science/" target="_blank" rel="noreferrer noopener">data science lainnya.</a></p>
<p>The post <a href="https://onestringlab.com/line-chart-visualisasi-data-dengan-matplotlib/">Belajar Data Science &#8211; Visualisasi Data dengan Line Chart Matplotlib</a> appeared first on <a href="https://onestringlab.com">Onestring Lab</a>.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Belajar Data Science &#8211; Menggabungkan Pandas DataFrame</title>
		<link>https://onestringlab.com/menggabungkan-pandas-dataframe/</link>
		
		<dc:creator><![CDATA[Rajo Intan]]></dc:creator>
		<pubDate>Wed, 03 Nov 2021 11:49:43 +0000</pubDate>
				<category><![CDATA[Kode]]></category>
		<category><![CDATA[Data Science]]></category>
		<category><![CDATA[Dataframe]]></category>
		<category><![CDATA[Join]]></category>
		<category><![CDATA[Pandas]]></category>
		<guid isPermaLink="false">https://onestringlab.com/?p=444</guid>

					<description><![CDATA[<p>Data yang tersedia untuk proses analisa data atau data mining biasanya perlu dilakukan pre-processing terlebih dahulu. Salah satu pre-processing yang dilakukan adalah menggabungkan beberapa Pandas &#8230; </p>
<p>The post <a href="https://onestringlab.com/menggabungkan-pandas-dataframe/">Belajar Data Science &#8211; Menggabungkan Pandas DataFrame</a> appeared first on <a href="https://onestringlab.com">Onestring Lab</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<p>Data yang tersedia untuk proses analisa data atau data mining biasanya perlu dilakukan pre-processing terlebih dahulu. Salah satu pre-processing yang dilakukan adalah menggabungkan beberapa Pandas DataFrame menjadi 1 buah DataFrame. Penggabungan ini bertujuan agar data yang diproses berada pada 1 DataFrame saja sehingga proses selanjutya dapat dilakukan fokus pada DataFrame tersebut. Pada artikel ini akan dibahasa mengenai cara Pandas Join 2 DataFrame untuk inner, left dan right join. Dokumentasi secara menyeluruh mengenai ini dapat dilihat <a href="https://pandas.pydata.org/docs/reference/api/pandas.DataFrame.join.html">di sini</a>.</p>



<h2 class="wp-block-heading">Import Library dan Membuat Beberapa Dataframe</h2>



<p>Pada bagian ini akan diperlihatkan kode program untuk import library Pandas dan membuat beberapa DataFrame</p>



<pre class="wp-block-code"><code lang="python" class="language-python">import pandas as pd

# membuat data pelanggan
pelanggan = pd.DataFrame({'idpelanggan':[1, 2, 3, 4, 5],
                          'nama':['Adi','Zainal','Fajar','Budiman','Marlina']})

# membuat data transaksi
transaksi = pd.DataFrame({'idtransaksi': [5, 6, 7],
                          'idpelanggan' : [2, 3, 4],
                          'idbarang' : [8, 9, 10],
                          'jumlah' : [3, 4, 5] })

# membuat data barang
barang = pd.DataFrame({'idbrg' : [8, 9, 10, 11, 12],
                          'nama_barang' : ['Biskuit', 'Kopi', 'Gula', 'Beras', 'Minyak Goreng'],
                       'harga' : [2000, 3000, 3500, 5000, 6000]})</code></pre>



<p>Hasil DataFrame dari keluaran kode program diatas terlihat seperti berikut ini.</p>


<div class="wp-block-image">
<figure class="aligncenter size-full"><img loading="lazy" decoding="async" width="194" height="166" src="https://onestringlab.com/wp-content/uploads/2021/11/image-6.png" alt="" class="wp-image-477"/><figcaption class="wp-element-caption">DataFrame pelanggan</figcaption></figure>
</div>

<div class="wp-block-image">
<figure class="aligncenter size-full"><img loading="lazy" decoding="async" width="340" height="114" src="https://onestringlab.com/wp-content/uploads/2021/11/image-7.png" alt="" class="wp-image-478" srcset="https://onestringlab.com/wp-content/uploads/2021/11/image-7.png 340w, https://onestringlab.com/wp-content/uploads/2021/11/image-7-300x101.png 300w" sizes="auto, (max-width: 340px) 100vw, 340px" /><figcaption class="wp-element-caption">DataFrame transaksi</figcaption></figure>
</div>

<div class="wp-block-image">
<figure class="aligncenter size-full"><img loading="lazy" decoding="async" width="227" height="169" src="https://onestringlab.com/wp-content/uploads/2021/11/image-9.png" alt="" class="wp-image-481"/><figcaption class="wp-element-caption">DataFrame barang</figcaption></figure>
</div>


<h2 class="wp-block-heading">Menggabungkan DataFrame dengan inner join</h2>



<p>Pada bagian ini akan dicontohkan mengenai cara melakukan inner join pada 2 Pandas DataFrame. DataFrame yang akan digabungkan adalah DataFrame pelanggan dan transaksi.</p>



<pre class="wp-block-code"><code lang="python" class="language-python"># menggabungkan 2 dataframe yaitu pelanggan dan transaksi secara inner join
df1 = pd.merge(pelanggan,transaksi, on = 'idpelanggan', how='inner')
df1</code></pre>



<p>Keluaran dari kode diatas adalah</p>


<div class="wp-block-image">
<figure class="aligncenter size-full"><img loading="lazy" decoding="async" width="400" height="117" src="https://onestringlab.com/wp-content/uploads/2021/11/image-10.png" alt="Menggabungkan 2 Pandas DataFrame" class="wp-image-482" srcset="https://onestringlab.com/wp-content/uploads/2021/11/image-10.png 400w, https://onestringlab.com/wp-content/uploads/2021/11/image-10-300x88.png 300w" sizes="auto, (max-width: 400px) 100vw, 400px" /><figcaption class="wp-element-caption">Hasil inner join pelanggan dan transaksi</figcaption></figure>
</div>


<h2 class="wp-block-heading">  Menggabungkan DataFrame dengan left join </h2>



<p> Pada bagian ini akan dicontohkan mengenai cara melakukan leftjoin pada 2 Pandas DataFrame. DataFrame yang akan digabungkan adalah DataFrame pelanggan dan transaksi. </p>



<pre class="wp-block-code"><code lang="python" class="language-python"># menggabungkan 2 dataframe yaitu pelanggan dan transaksi secara left join
df2 = pd.merge(pelanggan,transaksi, on = 'idpelanggan', how='left')
df2</code></pre>



<p> Keluaran dari kode diatas adalah </p>


<div class="wp-block-image">
<figure class="aligncenter size-full"><img loading="lazy" decoding="async" width="394" height="162" src="https://onestringlab.com/wp-content/uploads/2021/11/image-11.png" alt="Menggabungkan 2 Pandas DataFrame" class="wp-image-485" srcset="https://onestringlab.com/wp-content/uploads/2021/11/image-11.png 394w, https://onestringlab.com/wp-content/uploads/2021/11/image-11-300x123.png 300w" sizes="auto, (max-width: 394px) 100vw, 394px" /><figcaption class="wp-element-caption"> Hasil penggabungan pelanggan dan transaksi </figcaption></figure>
</div>


<h2 class="wp-block-heading"> Right Join 2 DataFrame </h2>



<p> Pada bagian ini akan dicontohkan mengenai cara melakukan right join pada 2 Pandas DataFrame. DataFrame yang akan digabungkan adalah DataFrame transaksi dan barang. Ada sedikit perbedaan pada kode berikut ini dikarenakan adanya beda nama key yang akan digabungkan. </p>



<pre class="wp-block-code"><code lang="python" class="language-python"># menggabungkan 2 dataframe yaitu transaksi dan barang  secara right join
df3 = pd.merge(transaksi,barang, left_on = 'idbarang', right_on = 'idbrg', how='right')
df3</code></pre>



<p> </p>



<p> Keluaran dari kode diatas adalah  </p>


<div class="wp-block-image">
<figure class="aligncenter size-full"><img loading="lazy" decoding="async" width="520" height="170" src="https://onestringlab.com/wp-content/uploads/2021/11/image-12.png" alt="Menggabungkan 2 Pandas DataFrame" class="wp-image-486" srcset="https://onestringlab.com/wp-content/uploads/2021/11/image-12.png 520w, https://onestringlab.com/wp-content/uploads/2021/11/image-12-300x98.png 300w" sizes="auto, (max-width: 520px) 100vw, 520px" /><figcaption class="wp-element-caption">  Hasil penggabungan   transaksi dan barang  </figcaption></figure>
</div>


<h2 class="wp-block-heading">Pandas Join 3 DataFrame</h2>



<p>Pada bagian ini akan dicontohkan menggabungkan 3 dataframe secara inner join. DataFrame yang akan digabungkan adalah transaksi, pelanggan dan barang. Berikut kode progamnya.</p>



<pre class="wp-block-code"><code lang="python" class="language-python"># menggabungkan 3 dataframe yaitu pelanggan, transaksi dan barang secara inner join
df4 = pd.merge(pelanggan, transaksi, on = 'idpelanggan', how='inner')
df5 = pd.merge(df4, barang, left_on = 'idbarang', right_on = 'idbrg', how='inner')
df5</code></pre>



<p>Hasil keluaran dari kode diatas adalah</p>


<div class="wp-block-image">
<figure class="aligncenter size-full"><img loading="lazy" decoding="async" width="590" height="116" src="https://onestringlab.com/wp-content/uploads/2021/11/image-13.png" alt="" class="wp-image-489" srcset="https://onestringlab.com/wp-content/uploads/2021/11/image-13.png 590w, https://onestringlab.com/wp-content/uploads/2021/11/image-13-300x59.png 300w" sizes="auto, (max-width: 590px) 100vw, 590px" /><figcaption class="wp-element-caption">Penggaabungan 3 DataFrame yaitu pelanggan, transaksi dan barang</figcaption></figure>
</div>


<h2 class="wp-block-heading">Kesimpulan</h2>



<p>Proses menggabungkan beberapa Pandas DataFrame dapat dilakukan baik secara inner, left, atau right join. Bahkan, jika dibaca dokumentasi cara join pada Pandas DataFrame ada beberapa teknik lagi yang belum dibahas pada tulisan ini. Namun, untuk pengetahuan dasar mengetahui 3 cara ini. Artikel terkait data science dapat dilihat <a href="https://onestringlab.com/tag/data-science/">di sini</a>.</p>
<p>The post <a href="https://onestringlab.com/menggabungkan-pandas-dataframe/">Belajar Data Science &#8211; Menggabungkan Pandas DataFrame</a> appeared first on <a href="https://onestringlab.com">Onestring Lab</a>.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Belajar Data Science &#8211; Group by Pandas DataFrame Untuk Perhitungan Data</title>
		<link>https://onestringlab.com/group-by-pandas-dataframe-untuk-perhitungan-data/</link>
		
		<dc:creator><![CDATA[Rajo Intan]]></dc:creator>
		<pubDate>Sat, 30 Oct 2021 22:44:19 +0000</pubDate>
				<category><![CDATA[Kode]]></category>
		<category><![CDATA[Count]]></category>
		<category><![CDATA[Data Science]]></category>
		<category><![CDATA[Dataframe]]></category>
		<category><![CDATA[Group By]]></category>
		<category><![CDATA[Mean]]></category>
		<category><![CDATA[Pandas]]></category>
		<category><![CDATA[Sum]]></category>
		<guid isPermaLink="false">https://onestringlab.com/?p=292</guid>

					<description><![CDATA[<p>Data yang tersedia pada umumnya memiliki kolom yang dapat dikelompokkan berdasarkan kategorinya. Pandas DataFrame menyediakan fungsi yang dapat digunakan untuk tujuan tersebut yaitu group by. &#8230; </p>
<p>The post <a href="https://onestringlab.com/group-by-pandas-dataframe-untuk-perhitungan-data/">Belajar Data Science &#8211; Group by Pandas DataFrame Untuk Perhitungan Data</a> appeared first on <a href="https://onestringlab.com">Onestring Lab</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<p>Data yang tersedia pada umumnya memiliki kolom yang dapat dikelompokkan berdasarkan kategorinya. Pandas DataFrame menyediakan fungsi yang dapat digunakan untuk tujuan tersebut yaitu group by. Perintah ini serupa dengan perintah group by yang terdapat pada <a href="https://www.w3schools.com/sql/sql_groupby.asp" target="_blank" rel="noreferrer noopener">SQL</a>.  Misalkan, pada data terdapat nama kota maka kolomtersebut dapat dijadikan kategori untuk tampilan pengelompokkan data. Group by pada pandas dataframe dapat digabungkan dengan perintah lain untuk melakukan beberapa perhitungan. Perhitungan yang dapat dilakukan pada proses pengelompokkan data adalah mean, sum dan count.  </p>



<h2 class="wp-block-heading">Mean</h2>



<p>Perintah mean digunakan untuk menghitung rata-rata dari keseluruhan data.  Contoh perintah yang digunakan untuk mencari rata-rata seperti berikut ini.</p>



<pre class="wp-block-code"><code lang="python" class="language-python">df.groupby('Type 1').mean().head()</code></pre>


<div class="wp-block-image">
<figure class="aligncenter size-full"><img loading="lazy" decoding="async" width="611" height="214" src="https://onestringlab.com/wp-content/uploads/2021/11/group_by_sum.jpg" alt="" class="wp-image-368" srcset="https://onestringlab.com/wp-content/uploads/2021/11/group_by_sum.jpg 611w, https://onestringlab.com/wp-content/uploads/2021/11/group_by_sum-300x105.jpg 300w" sizes="auto, (max-width: 611px) 100vw, 611px" /><figcaption class="wp-element-caption">Tampilan data perintah  mean</figcaption></figure>
</div>


<h2 class="wp-block-heading">Sum</h2>



<p>Perintah sum digunakan untuk menghitung jumlah dari keseluruhan nilai data.  Contoh perintah yang digunakan untuk menghitung jumlah  seperti berikut ini.</p>



<pre class="wp-block-code"><code lang="python" class="language-python">df.groupby('Type 1').sum().head()</code></pre>


<div class="wp-block-image">
<figure class="aligncenter size-full"><img loading="lazy" decoding="async" width="611" height="214" src="https://onestringlab.com/wp-content/uploads/2021/11/group_by_sum-1.jpg" alt="" class="wp-image-370" srcset="https://onestringlab.com/wp-content/uploads/2021/11/group_by_sum-1.jpg 611w, https://onestringlab.com/wp-content/uploads/2021/11/group_by_sum-1-300x105.jpg 300w" sizes="auto, (max-width: 611px) 100vw, 611px" /><figcaption class="wp-element-caption">Tampilan data perintah  sum</figcaption></figure>
</div>


<h2 class="wp-block-heading"> Count</h2>



<p> Perintah count digunakan untuk menghitung jumlah dari  kemunculan data. Perbedaan dengan perintah sum adalah jika perintah sum digunakan untuk menjumlahkan nilai dari data sedangkan perintah count digunakan untuk menghitung jumlah kemunculan data.  Contoh perintah yang digunakan untuk menghitung jumlah  seperti berikut ini. </p>



<pre class="wp-block-code"><code lang="python" class="language-python">df.groupby(['Type 1']).count().head()</code></pre>


<div class="wp-block-image">
<figure class="aligncenter size-full"><img loading="lazy" decoding="async" width="709" height="197" src="https://onestringlab.com/wp-content/uploads/2021/11/group_by_count.jpg" alt="" class="wp-image-371" srcset="https://onestringlab.com/wp-content/uploads/2021/11/group_by_count.jpg 709w, https://onestringlab.com/wp-content/uploads/2021/11/group_by_count-300x83.jpg 300w" sizes="auto, (max-width: 709px) 100vw, 709px" /><figcaption class="wp-element-caption">Tampilan data perintah count</figcaption></figure>
</div>


<h2 class="wp-block-heading">Contoh Kode Program dengan Group By Pandas DataFrame</h2>



<p>Pada bagian ini akan diberikan mengenai perintah perhitungan yang telah dijelaskan sebelumnya.</p>



<div class="nbconvert">
      <div class="cell border-box-sizing text_cell rendered">
<div class="prompt input_prompt">
</div>
<div class="inner_cell">
<div class="text_cell_render border-box-sizing rendered_html">
<p><a href="https://colab.research.google.com/github/Onestringlab/osl_datascience/blob/main/6_Menghitung_Data_Berdasarkan_Kelompok.ipynb" target="_parent"><img decoding="async" src="https://colab.research.google.com/assets/colab-badge.svg" alt="Open In Colab"></a></p>

</div>
</div>
</div>
<div class="cell border-box-sizing text_cell rendered">
<div class="prompt input_prompt">
</div>
<div class="inner_cell">
<div class="text_cell_render border-box-sizing rendered_html">
<p><strong>Memuat data ke Dataframe Pandas</strong></p>

</div>
</div>
</div>
<div class="cell border-box-sizing code_cell rendered">
<div class="input">
<div class="prompt input_prompt">In [1]:</div>
<div class="inner_cell">
    <div class="input_area">
<div class=" highlight hl-python"><pre><span></span><span class="kn">import</span> <span class="nn">pandas</span> <span class="k">as</span> <span class="nn">pd</span>

<span class="n">df</span> <span class="o">=</span> <span class="n">pd</span><span class="o">.</span><span class="n">read_csv</span><span class="p">(</span><span class="s1">'https://raw.githubusercontent.com/Onestringlab/notebook/main/pokemon_data.csv'</span><span class="p">)</span>
<span class="n">df</span><span class="o">.</span><span class="n">head</span><span class="p">()</span>
</pre></div>

    </div>
</div>
</div>

<div class="output_wrapper">
<div class="output">


<div class="output_area">

    <div class="prompt output_prompt">Out[1]:</div>



<div class="output_html rendered_html output_subarea output_execute_result">

  <div id="df-58ba57fe-f57b-485f-85ab-64d56ca01156">
    <div class="colab-df-container">
      <div>
<style scoped>
    .dataframe tbody tr th:only-of-type {
        vertical-align: middle;
    }

    .dataframe tbody tr th {
        vertical-align: top;
    }

    .dataframe thead th {
        text-align: right;
    }
</style>
<table border="1" class="dataframe">
  <thead>
    <tr style="text-align: right;">
      <th></th>
      <th>#</th>
      <th>Name</th>
      <th>Type 1</th>
      <th>Type 2</th>
      <th>HP</th>
      <th>Attack</th>
      <th>Defense</th>
      <th>Sp. Atk</th>
      <th>Sp. Def</th>
      <th>Speed</th>
      <th>Generation</th>
      <th>Legendary</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <th>0</th>
      <td>1</td>
      <td>Bulbasaur</td>
      <td>Grass</td>
      <td>Poison</td>
      <td>45</td>
      <td>49</td>
      <td>49</td>
      <td>65</td>
      <td>65</td>
      <td>45</td>
      <td>1</td>
      <td>False</td>
    </tr>
    <tr>
      <th>1</th>
      <td>2</td>
      <td>Ivysaur</td>
      <td>Grass</td>
      <td>Poison</td>
      <td>60</td>
      <td>62</td>
      <td>63</td>
      <td>80</td>
      <td>80</td>
      <td>60</td>
      <td>1</td>
      <td>False</td>
    </tr>
    <tr>
      <th>2</th>
      <td>3</td>
      <td>Venusaur</td>
      <td>Grass</td>
      <td>Poison</td>
      <td>80</td>
      <td>82</td>
      <td>83</td>
      <td>100</td>
      <td>100</td>
      <td>80</td>
      <td>1</td>
      <td>False</td>
    </tr>
    <tr>
      <th>3</th>
      <td>3</td>
      <td>VenusaurMega Venusaur</td>
      <td>Grass</td>
      <td>Poison</td>
      <td>80</td>
      <td>100</td>
      <td>123</td>
      <td>122</td>
      <td>120</td>
      <td>80</td>
      <td>1</td>
      <td>False</td>
    </tr>
    <tr>
      <th>4</th>
      <td>4</td>
      <td>Charmander</td>
      <td>Fire</td>
      <td>NaN</td>
      <td>39</td>
      <td>52</td>
      <td>43</td>
      <td>60</td>
      <td>50</td>
      <td>65</td>
      <td>1</td>
      <td>False</td>
    </tr>
  </tbody>
</table>
</div>
      <button class="colab-df-convert" onclick="convertToInteractive('df-58ba57fe-f57b-485f-85ab-64d56ca01156')" title="Convert this dataframe to an interactive table." style="display:none;">
        
  <svg xmlns="http://www.w3.org/2000/svg" height="24px" viewbox="0 0 24 24" width="24px">
    <path d="M0 0h24v24H0V0z" fill="none"></path>
    <path d="M18.56 5.44l.94 2.06.94-2.06 2.06-.94-2.06-.94-.94-2.06-.94 2.06-2.06.94zm-11 1L8.5 8.5l.94-2.06 2.06-.94-2.06-.94L8.5 2.5l-.94 2.06-2.06.94zm10 10l.94 2.06.94-2.06 2.06-.94-2.06-.94-.94-2.06-.94 2.06-2.06.94z"></path><path d="M17.41 7.96l-1.37-1.37c-.4-.4-.92-.59-1.43-.59-.52 0-1.04.2-1.43.59L10.3 9.45l-7.72 7.72c-.78.78-.78 2.05 0 2.83L4 21.41c.39.39.9.59 1.41.59.51 0 1.02-.2 1.41-.59l7.78-7.78 2.81-2.81c.8-.78.8-2.07 0-2.86zM5.41 20L4 18.59l7.72-7.72 1.47 1.35L5.41 20z"></path>
  </svg>
      </button>
      
  <style>
    .colab-df-container {
      display:flex;
      flex-wrap:wrap;
      gap: 12px;
    }

    .colab-df-convert {
      background-color: #E8F0FE;
      border: none;
      border-radius: 50%;
      cursor: pointer;
      display: none;
      fill: #1967D2;
      height: 32px;
      padding: 0 0 0 0;
      width: 32px;
    }

    .colab-df-convert:hover {
      background-color: #E2EBFA;
      box-shadow: 0px 1px 2px rgba(60, 64, 67, 0.3), 0px 1px 3px 1px rgba(60, 64, 67, 0.15);
      fill: #174EA6;
    }

    [theme=dark] .colab-df-convert {
      background-color: #3B4455;
      fill: #D2E3FC;
    }

    [theme=dark] .colab-df-convert:hover {
      background-color: #434B5C;
      box-shadow: 0px 1px 3px 1px rgba(0, 0, 0, 0.15);
      filter: drop-shadow(0px 1px 2px rgba(0, 0, 0, 0.3));
      fill: #FFFFFF;
    }
  </style>

      <script>
        const buttonEl =
          document.querySelector('#df-58ba57fe-f57b-485f-85ab-64d56ca01156 button.colab-df-convert');
        buttonEl.style.display =
          google.colab.kernel.accessAllowed ? 'block' : 'none';

        async function convertToInteractive(key) {
          const element = document.querySelector('#df-58ba57fe-f57b-485f-85ab-64d56ca01156');
          const dataTable =
            await google.colab.kernel.invokeFunction('convertToInteractive',
                                                     [key], {});
          if (!dataTable) return;

          const docLinkHtml = 'Like what you see? Visit the ' +
            '<a target="_blank" href=https://colab.research.google.com/notebooks/data_table.ipynb>data table notebook'
            + ' to learn more about interactive tables.';
          element.innerHTML = '';
          dataTable['output_type'] = 'display_data';
          await google.colab.output.renderOutput(dataTable, element);
          const docLink = document.createElement('div');
          docLink.innerHTML = docLinkHtml;
          element.appendChild(docLink);
        }
      </script>
    </div>
  </div>
  
</div>

</div>

</div>
</div>

</div>
<div class="cell border-box-sizing text_cell rendered">
<div class="prompt input_prompt">
</div>
<div class="inner_cell">
<div class="text_cell_render border-box-sizing rendered_html">
<p><strong>Menampilkan semua rata-rata data yang dikelompokkan berdasarkan Type 1</strong></p>

</div>
</div>
</div>
<div class="cell border-box-sizing code_cell rendered">
<div class="input">
<div class="prompt input_prompt">In [2]:</div>
<div class="inner_cell">
    <div class="input_area">
<div class=" highlight hl-python"><pre><span></span><span class="n">df</span><span class="o">.</span><span class="n">groupby</span><span class="p">(</span><span class="s1">'Type 1'</span><span class="p">)</span><span class="o">.</span><span class="n">mean</span><span class="p">()</span><span class="o">.</span><span class="n">head</span><span class="p">()</span>
</pre></div>

    </div>
</div>
</div>

<div class="output_wrapper">
<div class="output">


<div class="output_area">

    <div class="prompt output_prompt">Out[2]:</div>



<div class="output_html rendered_html output_subarea output_execute_result">

  <div id="df-68bbbe08-644b-4c50-ac67-8dfb9361bd36">
    <div class="colab-df-container">
      <div>
<style scoped>
    .dataframe tbody tr th:only-of-type {
        vertical-align: middle;
    }

    .dataframe tbody tr th {
        vertical-align: top;
    }

    .dataframe thead th {
        text-align: right;
    }
</style>
<table border="1" class="dataframe">
  <thead>
    <tr style="text-align: right;">
      <th></th>
      <th>#</th>
      <th>HP</th>
      <th>Attack</th>
      <th>Defense</th>
      <th>Sp. Atk</th>
      <th>Sp. Def</th>
      <th>Speed</th>
      <th>Generation</th>
      <th>Legendary</th>
    </tr>
    <tr>
      <th>Type 1</th>
      <th></th>
      <th></th>
      <th></th>
      <th></th>
      <th></th>
      <th></th>
      <th></th>
      <th></th>
      <th></th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <th>Bug</th>
      <td>334.492754</td>
      <td>56.884058</td>
      <td>70.971014</td>
      <td>70.724638</td>
      <td>53.869565</td>
      <td>64.797101</td>
      <td>61.681159</td>
      <td>3.217391</td>
      <td>0.000000</td>
    </tr>
    <tr>
      <th>Dark</th>
      <td>461.354839</td>
      <td>66.806452</td>
      <td>88.387097</td>
      <td>70.225806</td>
      <td>74.645161</td>
      <td>69.516129</td>
      <td>76.161290</td>
      <td>4.032258</td>
      <td>0.064516</td>
    </tr>
    <tr>
      <th>Dragon</th>
      <td>474.375000</td>
      <td>83.312500</td>
      <td>112.125000</td>
      <td>86.375000</td>
      <td>96.843750</td>
      <td>88.843750</td>
      <td>83.031250</td>
      <td>3.875000</td>
      <td>0.375000</td>
    </tr>
    <tr>
      <th>Electric</th>
      <td>363.500000</td>
      <td>59.795455</td>
      <td>69.090909</td>
      <td>66.295455</td>
      <td>90.022727</td>
      <td>73.704545</td>
      <td>84.500000</td>
      <td>3.272727</td>
      <td>0.090909</td>
    </tr>
    <tr>
      <th>Fairy</th>
      <td>449.529412</td>
      <td>74.117647</td>
      <td>61.529412</td>
      <td>65.705882</td>
      <td>78.529412</td>
      <td>84.705882</td>
      <td>48.588235</td>
      <td>4.117647</td>
      <td>0.058824</td>
    </tr>
  </tbody>
</table>
</div>
      <button class="colab-df-convert" onclick="convertToInteractive('df-68bbbe08-644b-4c50-ac67-8dfb9361bd36')" title="Convert this dataframe to an interactive table." style="display:none;">
        
  <svg xmlns="http://www.w3.org/2000/svg" height="24px" viewbox="0 0 24 24" width="24px">
    <path d="M0 0h24v24H0V0z" fill="none"></path>
    <path d="M18.56 5.44l.94 2.06.94-2.06 2.06-.94-2.06-.94-.94-2.06-.94 2.06-2.06.94zm-11 1L8.5 8.5l.94-2.06 2.06-.94-2.06-.94L8.5 2.5l-.94 2.06-2.06.94zm10 10l.94 2.06.94-2.06 2.06-.94-2.06-.94-.94-2.06-.94 2.06-2.06.94z"></path><path d="M17.41 7.96l-1.37-1.37c-.4-.4-.92-.59-1.43-.59-.52 0-1.04.2-1.43.59L10.3 9.45l-7.72 7.72c-.78.78-.78 2.05 0 2.83L4 21.41c.39.39.9.59 1.41.59.51 0 1.02-.2 1.41-.59l7.78-7.78 2.81-2.81c.8-.78.8-2.07 0-2.86zM5.41 20L4 18.59l7.72-7.72 1.47 1.35L5.41 20z"></path>
  </svg>
      </button>
      
  <style>
    .colab-df-container {
      display:flex;
      flex-wrap:wrap;
      gap: 12px;
    }

    .colab-df-convert {
      background-color: #E8F0FE;
      border: none;
      border-radius: 50%;
      cursor: pointer;
      display: none;
      fill: #1967D2;
      height: 32px;
      padding: 0 0 0 0;
      width: 32px;
    }

    .colab-df-convert:hover {
      background-color: #E2EBFA;
      box-shadow: 0px 1px 2px rgba(60, 64, 67, 0.3), 0px 1px 3px 1px rgba(60, 64, 67, 0.15);
      fill: #174EA6;
    }

    [theme=dark] .colab-df-convert {
      background-color: #3B4455;
      fill: #D2E3FC;
    }

    [theme=dark] .colab-df-convert:hover {
      background-color: #434B5C;
      box-shadow: 0px 1px 3px 1px rgba(0, 0, 0, 0.15);
      filter: drop-shadow(0px 1px 2px rgba(0, 0, 0, 0.3));
      fill: #FFFFFF;
    }
  </style>

      <script>
        const buttonEl =
          document.querySelector('#df-68bbbe08-644b-4c50-ac67-8dfb9361bd36 button.colab-df-convert');
        buttonEl.style.display =
          google.colab.kernel.accessAllowed ? 'block' : 'none';

        async function convertToInteractive(key) {
          const element = document.querySelector('#df-68bbbe08-644b-4c50-ac67-8dfb9361bd36');
          const dataTable =
            await google.colab.kernel.invokeFunction('convertToInteractive',
                                                     [key], {});
          if (!dataTable) return;

          const docLinkHtml = 'Like what you see? Visit the ' +
            '<a target="_blank" href=https://colab.research.google.com/notebooks/data_table.ipynb>data table notebook'
            + ' to learn more about interactive tables.';
          element.innerHTML = '';
          dataTable['output_type'] = 'display_data';
          await google.colab.output.renderOutput(dataTable, element);
          const docLink = document.createElement('div');
          docLink.innerHTML = docLinkHtml;
          element.appendChild(docLink);
        }
      </script>
    </div>
  </div>
  
</div>

</div>

</div>
</div>

</div>
<div class="cell border-box-sizing code_cell rendered">
<div class="input">
<div class="prompt input_prompt">In [3]:</div>
<div class="inner_cell">
    <div class="input_area">
<div class=" highlight hl-python"><pre><span></span><span class="n">df</span><span class="o">.</span><span class="n">groupby</span><span class="p">(</span><span class="s1">'Type 1'</span><span class="p">)</span><span class="o">.</span><span class="n">mean</span><span class="p">()</span><span class="o">.</span><span class="n">sort_values</span><span class="p">(</span><span class="s1">'Attack'</span><span class="p">,</span> <span class="n">ascending</span><span class="o">=</span><span class="kc">False</span><span class="p">)</span><span class="o">.</span><span class="n">head</span><span class="p">()</span>
</pre></div>

    </div>
</div>
</div>

<div class="output_wrapper">
<div class="output">


<div class="output_area">

    <div class="prompt output_prompt">Out[3]:</div>



<div class="output_html rendered_html output_subarea output_execute_result">

  <div id="df-f7af7b64-1b3e-4412-8f1d-171b41af2c43">
    <div class="colab-df-container">
      <div>
<style scoped>
    .dataframe tbody tr th:only-of-type {
        vertical-align: middle;
    }

    .dataframe tbody tr th {
        vertical-align: top;
    }

    .dataframe thead th {
        text-align: right;
    }
</style>
<table border="1" class="dataframe">
  <thead>
    <tr style="text-align: right;">
      <th></th>
      <th>#</th>
      <th>HP</th>
      <th>Attack</th>
      <th>Defense</th>
      <th>Sp. Atk</th>
      <th>Sp. Def</th>
      <th>Speed</th>
      <th>Generation</th>
      <th>Legendary</th>
    </tr>
    <tr>
      <th>Type 1</th>
      <th></th>
      <th></th>
      <th></th>
      <th></th>
      <th></th>
      <th></th>
      <th></th>
      <th></th>
      <th></th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <th>Dragon</th>
      <td>474.375000</td>
      <td>83.312500</td>
      <td>112.125000</td>
      <td>86.375000</td>
      <td>96.843750</td>
      <td>88.843750</td>
      <td>83.031250</td>
      <td>3.875000</td>
      <td>0.375000</td>
    </tr>
    <tr>
      <th>Fighting</th>
      <td>363.851852</td>
      <td>69.851852</td>
      <td>96.777778</td>
      <td>65.925926</td>
      <td>53.111111</td>
      <td>64.703704</td>
      <td>66.074074</td>
      <td>3.370370</td>
      <td>0.000000</td>
    </tr>
    <tr>
      <th>Ground</th>
      <td>356.281250</td>
      <td>73.781250</td>
      <td>95.750000</td>
      <td>84.843750</td>
      <td>56.468750</td>
      <td>62.750000</td>
      <td>63.906250</td>
      <td>3.156250</td>
      <td>0.125000</td>
    </tr>
    <tr>
      <th>Rock</th>
      <td>392.727273</td>
      <td>65.363636</td>
      <td>92.863636</td>
      <td>100.795455</td>
      <td>63.340909</td>
      <td>75.477273</td>
      <td>55.909091</td>
      <td>3.454545</td>
      <td>0.090909</td>
    </tr>
    <tr>
      <th>Steel</th>
      <td>442.851852</td>
      <td>65.222222</td>
      <td>92.703704</td>
      <td>126.370370</td>
      <td>67.518519</td>
      <td>80.629630</td>
      <td>55.259259</td>
      <td>3.851852</td>
      <td>0.148148</td>
    </tr>
  </tbody>
</table>
</div>
      <button class="colab-df-convert" onclick="convertToInteractive('df-f7af7b64-1b3e-4412-8f1d-171b41af2c43')" title="Convert this dataframe to an interactive table." style="display:none;">
        
  <svg xmlns="http://www.w3.org/2000/svg" height="24px" viewbox="0 0 24 24" width="24px">
    <path d="M0 0h24v24H0V0z" fill="none"></path>
    <path d="M18.56 5.44l.94 2.06.94-2.06 2.06-.94-2.06-.94-.94-2.06-.94 2.06-2.06.94zm-11 1L8.5 8.5l.94-2.06 2.06-.94-2.06-.94L8.5 2.5l-.94 2.06-2.06.94zm10 10l.94 2.06.94-2.06 2.06-.94-2.06-.94-.94-2.06-.94 2.06-2.06.94z"></path><path d="M17.41 7.96l-1.37-1.37c-.4-.4-.92-.59-1.43-.59-.52 0-1.04.2-1.43.59L10.3 9.45l-7.72 7.72c-.78.78-.78 2.05 0 2.83L4 21.41c.39.39.9.59 1.41.59.51 0 1.02-.2 1.41-.59l7.78-7.78 2.81-2.81c.8-.78.8-2.07 0-2.86zM5.41 20L4 18.59l7.72-7.72 1.47 1.35L5.41 20z"></path>
  </svg>
      </button>
      
  <style>
    .colab-df-container {
      display:flex;
      flex-wrap:wrap;
      gap: 12px;
    }

    .colab-df-convert {
      background-color: #E8F0FE;
      border: none;
      border-radius: 50%;
      cursor: pointer;
      display: none;
      fill: #1967D2;
      height: 32px;
      padding: 0 0 0 0;
      width: 32px;
    }

    .colab-df-convert:hover {
      background-color: #E2EBFA;
      box-shadow: 0px 1px 2px rgba(60, 64, 67, 0.3), 0px 1px 3px 1px rgba(60, 64, 67, 0.15);
      fill: #174EA6;
    }

    [theme=dark] .colab-df-convert {
      background-color: #3B4455;
      fill: #D2E3FC;
    }

    [theme=dark] .colab-df-convert:hover {
      background-color: #434B5C;
      box-shadow: 0px 1px 3px 1px rgba(0, 0, 0, 0.15);
      filter: drop-shadow(0px 1px 2px rgba(0, 0, 0, 0.3));
      fill: #FFFFFF;
    }
  </style>

      <script>
        const buttonEl =
          document.querySelector('#df-f7af7b64-1b3e-4412-8f1d-171b41af2c43 button.colab-df-convert');
        buttonEl.style.display =
          google.colab.kernel.accessAllowed ? 'block' : 'none';

        async function convertToInteractive(key) {
          const element = document.querySelector('#df-f7af7b64-1b3e-4412-8f1d-171b41af2c43');
          const dataTable =
            await google.colab.kernel.invokeFunction('convertToInteractive',
                                                     [key], {});
          if (!dataTable) return;

          const docLinkHtml = 'Like what you see? Visit the ' +
            '<a target="_blank" href=https://colab.research.google.com/notebooks/data_table.ipynb>data table notebook'
            + ' to learn more about interactive tables.';
          element.innerHTML = '';
          dataTable['output_type'] = 'display_data';
          await google.colab.output.renderOutput(dataTable, element);
          const docLink = document.createElement('div');
          docLink.innerHTML = docLinkHtml;
          element.appendChild(docLink);
        }
      </script>
    </div>
  </div>
  
</div>

</div>

</div>
</div>

</div>
<div class="cell border-box-sizing text_cell rendered">
<div class="prompt input_prompt">
</div>
<div class="inner_cell">
<div class="text_cell_render border-box-sizing rendered_html">
<p><strong>Menampilkan semua jumlah data yang dikelompokkan berdasarkan Type 1</strong></p>

</div>
</div>
</div>
<div class="cell border-box-sizing code_cell rendered">
<div class="input">
<div class="prompt input_prompt">In [4]:</div>
<div class="inner_cell">
    <div class="input_area">
<div class=" highlight hl-python"><pre><span></span><span class="n">df</span><span class="o">.</span><span class="n">groupby</span><span class="p">(</span><span class="s1">'Type 1'</span><span class="p">)</span><span class="o">.</span><span class="n">sum</span><span class="p">()</span><span class="o">.</span><span class="n">head</span><span class="p">()</span>
</pre></div>

    </div>
</div>
</div>

<div class="output_wrapper">
<div class="output">


<div class="output_area">

    <div class="prompt output_prompt">Out[4]:</div>



<div class="output_html rendered_html output_subarea output_execute_result">

  <div id="df-3244fca8-79d7-4317-8906-9140e53a5e81">
    <div class="colab-df-container">
      <div>
<style scoped>
    .dataframe tbody tr th:only-of-type {
        vertical-align: middle;
    }

    .dataframe tbody tr th {
        vertical-align: top;
    }

    .dataframe thead th {
        text-align: right;
    }
</style>
<table border="1" class="dataframe">
  <thead>
    <tr style="text-align: right;">
      <th></th>
      <th>#</th>
      <th>HP</th>
      <th>Attack</th>
      <th>Defense</th>
      <th>Sp. Atk</th>
      <th>Sp. Def</th>
      <th>Speed</th>
      <th>Generation</th>
      <th>Legendary</th>
    </tr>
    <tr>
      <th>Type 1</th>
      <th></th>
      <th></th>
      <th></th>
      <th></th>
      <th></th>
      <th></th>
      <th></th>
      <th></th>
      <th></th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <th>Bug</th>
      <td>23080</td>
      <td>3925</td>
      <td>4897</td>
      <td>4880</td>
      <td>3717</td>
      <td>4471</td>
      <td>4256</td>
      <td>222</td>
      <td>0</td>
    </tr>
    <tr>
      <th>Dark</th>
      <td>14302</td>
      <td>2071</td>
      <td>2740</td>
      <td>2177</td>
      <td>2314</td>
      <td>2155</td>
      <td>2361</td>
      <td>125</td>
      <td>2</td>
    </tr>
    <tr>
      <th>Dragon</th>
      <td>15180</td>
      <td>2666</td>
      <td>3588</td>
      <td>2764</td>
      <td>3099</td>
      <td>2843</td>
      <td>2657</td>
      <td>124</td>
      <td>12</td>
    </tr>
    <tr>
      <th>Electric</th>
      <td>15994</td>
      <td>2631</td>
      <td>3040</td>
      <td>2917</td>
      <td>3961</td>
      <td>3243</td>
      <td>3718</td>
      <td>144</td>
      <td>4</td>
    </tr>
    <tr>
      <th>Fairy</th>
      <td>7642</td>
      <td>1260</td>
      <td>1046</td>
      <td>1117</td>
      <td>1335</td>
      <td>1440</td>
      <td>826</td>
      <td>70</td>
      <td>1</td>
    </tr>
  </tbody>
</table>
</div>
      <button class="colab-df-convert" onclick="convertToInteractive('df-3244fca8-79d7-4317-8906-9140e53a5e81')" title="Convert this dataframe to an interactive table." style="display:none;">
        
  <svg xmlns="http://www.w3.org/2000/svg" height="24px" viewbox="0 0 24 24" width="24px">
    <path d="M0 0h24v24H0V0z" fill="none"></path>
    <path d="M18.56 5.44l.94 2.06.94-2.06 2.06-.94-2.06-.94-.94-2.06-.94 2.06-2.06.94zm-11 1L8.5 8.5l.94-2.06 2.06-.94-2.06-.94L8.5 2.5l-.94 2.06-2.06.94zm10 10l.94 2.06.94-2.06 2.06-.94-2.06-.94-.94-2.06-.94 2.06-2.06.94z"></path><path d="M17.41 7.96l-1.37-1.37c-.4-.4-.92-.59-1.43-.59-.52 0-1.04.2-1.43.59L10.3 9.45l-7.72 7.72c-.78.78-.78 2.05 0 2.83L4 21.41c.39.39.9.59 1.41.59.51 0 1.02-.2 1.41-.59l7.78-7.78 2.81-2.81c.8-.78.8-2.07 0-2.86zM5.41 20L4 18.59l7.72-7.72 1.47 1.35L5.41 20z"></path>
  </svg>
      </button>
      
  <style>
    .colab-df-container {
      display:flex;
      flex-wrap:wrap;
      gap: 12px;
    }

    .colab-df-convert {
      background-color: #E8F0FE;
      border: none;
      border-radius: 50%;
      cursor: pointer;
      display: none;
      fill: #1967D2;
      height: 32px;
      padding: 0 0 0 0;
      width: 32px;
    }

    .colab-df-convert:hover {
      background-color: #E2EBFA;
      box-shadow: 0px 1px 2px rgba(60, 64, 67, 0.3), 0px 1px 3px 1px rgba(60, 64, 67, 0.15);
      fill: #174EA6;
    }

    [theme=dark] .colab-df-convert {
      background-color: #3B4455;
      fill: #D2E3FC;
    }

    [theme=dark] .colab-df-convert:hover {
      background-color: #434B5C;
      box-shadow: 0px 1px 3px 1px rgba(0, 0, 0, 0.15);
      filter: drop-shadow(0px 1px 2px rgba(0, 0, 0, 0.3));
      fill: #FFFFFF;
    }
  </style>

      <script>
        const buttonEl =
          document.querySelector('#df-3244fca8-79d7-4317-8906-9140e53a5e81 button.colab-df-convert');
        buttonEl.style.display =
          google.colab.kernel.accessAllowed ? 'block' : 'none';

        async function convertToInteractive(key) {
          const element = document.querySelector('#df-3244fca8-79d7-4317-8906-9140e53a5e81');
          const dataTable =
            await google.colab.kernel.invokeFunction('convertToInteractive',
                                                     [key], {});
          if (!dataTable) return;

          const docLinkHtml = 'Like what you see? Visit the ' +
            '<a target="_blank" href=https://colab.research.google.com/notebooks/data_table.ipynb>data table notebook'
            + ' to learn more about interactive tables.';
          element.innerHTML = '';
          dataTable['output_type'] = 'display_data';
          await google.colab.output.renderOutput(dataTable, element);
          const docLink = document.createElement('div');
          docLink.innerHTML = docLinkHtml;
          element.appendChild(docLink);
        }
      </script>
    </div>
  </div>
  
</div>

</div>

</div>
</div>

</div>
<div class="cell border-box-sizing code_cell rendered">
<div class="input">
<div class="prompt input_prompt">In [5]:</div>
<div class="inner_cell">
    <div class="input_area">
<div class=" highlight hl-python"><pre><span></span><span class="n">df</span><span class="o">.</span><span class="n">groupby</span><span class="p">(</span><span class="s1">'Type 1'</span><span class="p">)</span><span class="o">.</span><span class="n">sum</span><span class="p">()</span><span class="o">.</span><span class="n">sort_values</span><span class="p">(</span><span class="s1">'Attack'</span><span class="p">,</span> <span class="n">ascending</span><span class="o">=</span><span class="kc">False</span><span class="p">)</span><span class="o">.</span><span class="n">head</span><span class="p">()</span>
</pre></div>

    </div>
</div>
</div>

<div class="output_wrapper">
<div class="output">


<div class="output_area">

    <div class="prompt output_prompt">Out[5]:</div>



<div class="output_html rendered_html output_subarea output_execute_result">

  <div id="df-1f2b13ae-4333-4a4a-bf57-3042e6bbd0fd">
    <div class="colab-df-container">
      <div>
<style scoped>
    .dataframe tbody tr th:only-of-type {
        vertical-align: middle;
    }

    .dataframe tbody tr th {
        vertical-align: top;
    }

    .dataframe thead th {
        text-align: right;
    }
</style>
<table border="1" class="dataframe">
  <thead>
    <tr style="text-align: right;">
      <th></th>
      <th>#</th>
      <th>HP</th>
      <th>Attack</th>
      <th>Defense</th>
      <th>Sp. Atk</th>
      <th>Sp. Def</th>
      <th>Speed</th>
      <th>Generation</th>
      <th>Legendary</th>
    </tr>
    <tr>
      <th>Type 1</th>
      <th></th>
      <th></th>
      <th></th>
      <th></th>
      <th></th>
      <th></th>
      <th></th>
      <th></th>
      <th></th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <th>Water</th>
      <td>33946</td>
      <td>8071</td>
      <td>8305</td>
      <td>8170</td>
      <td>8379</td>
      <td>7898</td>
      <td>7388</td>
      <td>320</td>
      <td>4</td>
    </tr>
    <tr>
      <th>Normal</th>
      <td>31279</td>
      <td>7573</td>
      <td>7200</td>
      <td>5865</td>
      <td>5470</td>
      <td>6245</td>
      <td>7012</td>
      <td>299</td>
      <td>2</td>
    </tr>
    <tr>
      <th>Grass</th>
      <td>24141</td>
      <td>4709</td>
      <td>5125</td>
      <td>4956</td>
      <td>5425</td>
      <td>4930</td>
      <td>4335</td>
      <td>235</td>
      <td>3</td>
    </tr>
    <tr>
      <th>Bug</th>
      <td>23080</td>
      <td>3925</td>
      <td>4897</td>
      <td>4880</td>
      <td>3717</td>
      <td>4471</td>
      <td>4256</td>
      <td>222</td>
      <td>0</td>
    </tr>
    <tr>
      <th>Fire</th>
      <td>17025</td>
      <td>3635</td>
      <td>4408</td>
      <td>3524</td>
      <td>4627</td>
      <td>3755</td>
      <td>3871</td>
      <td>167</td>
      <td>5</td>
    </tr>
  </tbody>
</table>
</div>
      <button class="colab-df-convert" onclick="convertToInteractive('df-1f2b13ae-4333-4a4a-bf57-3042e6bbd0fd')" title="Convert this dataframe to an interactive table." style="display:none;">
        
  <svg xmlns="http://www.w3.org/2000/svg" height="24px" viewbox="0 0 24 24" width="24px">
    <path d="M0 0h24v24H0V0z" fill="none"></path>
    <path d="M18.56 5.44l.94 2.06.94-2.06 2.06-.94-2.06-.94-.94-2.06-.94 2.06-2.06.94zm-11 1L8.5 8.5l.94-2.06 2.06-.94-2.06-.94L8.5 2.5l-.94 2.06-2.06.94zm10 10l.94 2.06.94-2.06 2.06-.94-2.06-.94-.94-2.06-.94 2.06-2.06.94z"></path><path d="M17.41 7.96l-1.37-1.37c-.4-.4-.92-.59-1.43-.59-.52 0-1.04.2-1.43.59L10.3 9.45l-7.72 7.72c-.78.78-.78 2.05 0 2.83L4 21.41c.39.39.9.59 1.41.59.51 0 1.02-.2 1.41-.59l7.78-7.78 2.81-2.81c.8-.78.8-2.07 0-2.86zM5.41 20L4 18.59l7.72-7.72 1.47 1.35L5.41 20z"></path>
  </svg>
      </button>
      
  <style>
    .colab-df-container {
      display:flex;
      flex-wrap:wrap;
      gap: 12px;
    }

    .colab-df-convert {
      background-color: #E8F0FE;
      border: none;
      border-radius: 50%;
      cursor: pointer;
      display: none;
      fill: #1967D2;
      height: 32px;
      padding: 0 0 0 0;
      width: 32px;
    }

    .colab-df-convert:hover {
      background-color: #E2EBFA;
      box-shadow: 0px 1px 2px rgba(60, 64, 67, 0.3), 0px 1px 3px 1px rgba(60, 64, 67, 0.15);
      fill: #174EA6;
    }

    [theme=dark] .colab-df-convert {
      background-color: #3B4455;
      fill: #D2E3FC;
    }

    [theme=dark] .colab-df-convert:hover {
      background-color: #434B5C;
      box-shadow: 0px 1px 3px 1px rgba(0, 0, 0, 0.15);
      filter: drop-shadow(0px 1px 2px rgba(0, 0, 0, 0.3));
      fill: #FFFFFF;
    }
  </style>

      <script>
        const buttonEl =
          document.querySelector('#df-1f2b13ae-4333-4a4a-bf57-3042e6bbd0fd button.colab-df-convert');
        buttonEl.style.display =
          google.colab.kernel.accessAllowed ? 'block' : 'none';

        async function convertToInteractive(key) {
          const element = document.querySelector('#df-1f2b13ae-4333-4a4a-bf57-3042e6bbd0fd');
          const dataTable =
            await google.colab.kernel.invokeFunction('convertToInteractive',
                                                     [key], {});
          if (!dataTable) return;

          const docLinkHtml = 'Like what you see? Visit the ' +
            '<a target="_blank" href=https://colab.research.google.com/notebooks/data_table.ipynb>data table notebook'
            + ' to learn more about interactive tables.';
          element.innerHTML = '';
          dataTable['output_type'] = 'display_data';
          await google.colab.output.renderOutput(dataTable, element);
          const docLink = document.createElement('div');
          docLink.innerHTML = docLinkHtml;
          element.appendChild(docLink);
        }
      </script>
    </div>
  </div>
  
</div>

</div>

</div>
</div>

</div>
<div class="cell border-box-sizing text_cell rendered">
<div class="prompt input_prompt">
</div>
<div class="inner_cell">
<div class="text_cell_render border-box-sizing rendered_html">
<p><strong>Menampilkan jumlah data yang dikelompokkan berdasarkan Type 1</strong></p>

</div>
</div>
</div>
<div class="cell border-box-sizing code_cell rendered">
<div class="input">
<div class="prompt input_prompt">In [6]:</div>
<div class="inner_cell">
    <div class="input_area">
<div class=" highlight hl-python"><pre><span></span><span class="n">df</span><span class="p">[</span><span class="s1">'Count'</span><span class="p">]</span> <span class="o">=</span> <span class="mi">1</span>
<span class="n">df</span><span class="o">.</span><span class="n">head</span><span class="p">()</span>
</pre></div>

    </div>
</div>
</div>

<div class="output_wrapper">
<div class="output">


<div class="output_area">

    <div class="prompt output_prompt">Out[6]:</div>



<div class="output_html rendered_html output_subarea output_execute_result">

  <div id="df-6d94696b-6d6f-4685-9094-9a723cff23bf">
    <div class="colab-df-container">
      <div>
<style scoped>
    .dataframe tbody tr th:only-of-type {
        vertical-align: middle;
    }

    .dataframe tbody tr th {
        vertical-align: top;
    }

    .dataframe thead th {
        text-align: right;
    }
</style>
<table border="1" class="dataframe">
  <thead>
    <tr style="text-align: right;">
      <th></th>
      <th>#</th>
      <th>Name</th>
      <th>Type 1</th>
      <th>Type 2</th>
      <th>HP</th>
      <th>Attack</th>
      <th>Defense</th>
      <th>Sp. Atk</th>
      <th>Sp. Def</th>
      <th>Speed</th>
      <th>Generation</th>
      <th>Legendary</th>
      <th>Count</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <th>0</th>
      <td>1</td>
      <td>Bulbasaur</td>
      <td>Grass</td>
      <td>Poison</td>
      <td>45</td>
      <td>49</td>
      <td>49</td>
      <td>65</td>
      <td>65</td>
      <td>45</td>
      <td>1</td>
      <td>False</td>
      <td>1</td>
    </tr>
    <tr>
      <th>1</th>
      <td>2</td>
      <td>Ivysaur</td>
      <td>Grass</td>
      <td>Poison</td>
      <td>60</td>
      <td>62</td>
      <td>63</td>
      <td>80</td>
      <td>80</td>
      <td>60</td>
      <td>1</td>
      <td>False</td>
      <td>1</td>
    </tr>
    <tr>
      <th>2</th>
      <td>3</td>
      <td>Venusaur</td>
      <td>Grass</td>
      <td>Poison</td>
      <td>80</td>
      <td>82</td>
      <td>83</td>
      <td>100</td>
      <td>100</td>
      <td>80</td>
      <td>1</td>
      <td>False</td>
      <td>1</td>
    </tr>
    <tr>
      <th>3</th>
      <td>3</td>
      <td>VenusaurMega Venusaur</td>
      <td>Grass</td>
      <td>Poison</td>
      <td>80</td>
      <td>100</td>
      <td>123</td>
      <td>122</td>
      <td>120</td>
      <td>80</td>
      <td>1</td>
      <td>False</td>
      <td>1</td>
    </tr>
    <tr>
      <th>4</th>
      <td>4</td>
      <td>Charmander</td>
      <td>Fire</td>
      <td>NaN</td>
      <td>39</td>
      <td>52</td>
      <td>43</td>
      <td>60</td>
      <td>50</td>
      <td>65</td>
      <td>1</td>
      <td>False</td>
      <td>1</td>
    </tr>
  </tbody>
</table>
</div>
      <button class="colab-df-convert" onclick="convertToInteractive('df-6d94696b-6d6f-4685-9094-9a723cff23bf')" title="Convert this dataframe to an interactive table." style="display:none;">
        
  <svg xmlns="http://www.w3.org/2000/svg" height="24px" viewbox="0 0 24 24" width="24px">
    <path d="M0 0h24v24H0V0z" fill="none"></path>
    <path d="M18.56 5.44l.94 2.06.94-2.06 2.06-.94-2.06-.94-.94-2.06-.94 2.06-2.06.94zm-11 1L8.5 8.5l.94-2.06 2.06-.94-2.06-.94L8.5 2.5l-.94 2.06-2.06.94zm10 10l.94 2.06.94-2.06 2.06-.94-2.06-.94-.94-2.06-.94 2.06-2.06.94z"></path><path d="M17.41 7.96l-1.37-1.37c-.4-.4-.92-.59-1.43-.59-.52 0-1.04.2-1.43.59L10.3 9.45l-7.72 7.72c-.78.78-.78 2.05 0 2.83L4 21.41c.39.39.9.59 1.41.59.51 0 1.02-.2 1.41-.59l7.78-7.78 2.81-2.81c.8-.78.8-2.07 0-2.86zM5.41 20L4 18.59l7.72-7.72 1.47 1.35L5.41 20z"></path>
  </svg>
      </button>
      
  <style>
    .colab-df-container {
      display:flex;
      flex-wrap:wrap;
      gap: 12px;
    }

    .colab-df-convert {
      background-color: #E8F0FE;
      border: none;
      border-radius: 50%;
      cursor: pointer;
      display: none;
      fill: #1967D2;
      height: 32px;
      padding: 0 0 0 0;
      width: 32px;
    }

    .colab-df-convert:hover {
      background-color: #E2EBFA;
      box-shadow: 0px 1px 2px rgba(60, 64, 67, 0.3), 0px 1px 3px 1px rgba(60, 64, 67, 0.15);
      fill: #174EA6;
    }

    [theme=dark] .colab-df-convert {
      background-color: #3B4455;
      fill: #D2E3FC;
    }

    [theme=dark] .colab-df-convert:hover {
      background-color: #434B5C;
      box-shadow: 0px 1px 3px 1px rgba(0, 0, 0, 0.15);
      filter: drop-shadow(0px 1px 2px rgba(0, 0, 0, 0.3));
      fill: #FFFFFF;
    }
  </style>

      <script>
        const buttonEl =
          document.querySelector('#df-6d94696b-6d6f-4685-9094-9a723cff23bf button.colab-df-convert');
        buttonEl.style.display =
          google.colab.kernel.accessAllowed ? 'block' : 'none';

        async function convertToInteractive(key) {
          const element = document.querySelector('#df-6d94696b-6d6f-4685-9094-9a723cff23bf');
          const dataTable =
            await google.colab.kernel.invokeFunction('convertToInteractive',
                                                     [key], {});
          if (!dataTable) return;

          const docLinkHtml = 'Like what you see? Visit the ' +
            '<a target="_blank" href=https://colab.research.google.com/notebooks/data_table.ipynb>data table notebook'
            + ' to learn more about interactive tables.';
          element.innerHTML = '';
          dataTable['output_type'] = 'display_data';
          await google.colab.output.renderOutput(dataTable, element);
          const docLink = document.createElement('div');
          docLink.innerHTML = docLinkHtml;
          element.appendChild(docLink);
        }
      </script>
    </div>
  </div>
  
</div>

</div>

</div>
</div>

</div>
<div class="cell border-box-sizing code_cell rendered">
<div class="input">
<div class="prompt input_prompt">In [7]:</div>
<div class="inner_cell">
    <div class="input_area">
<div class=" highlight hl-python"><pre><span></span><span class="n">df</span><span class="o">.</span><span class="n">groupby</span><span class="p">([</span><span class="s1">'Type 1'</span><span class="p">])</span><span class="o">.</span><span class="n">count</span><span class="p">()</span><span class="o">.</span><span class="n">head</span><span class="p">()</span>
</pre></div>

    </div>
</div>
</div>

<div class="output_wrapper">
<div class="output">


<div class="output_area">

    <div class="prompt output_prompt">Out[7]:</div>



<div class="output_html rendered_html output_subarea output_execute_result">

  <div id="df-f44d343c-004d-4084-bfdf-a34e2cf3067a">
    <div class="colab-df-container">
      <div>
<style scoped>
    .dataframe tbody tr th:only-of-type {
        vertical-align: middle;
    }

    .dataframe tbody tr th {
        vertical-align: top;
    }

    .dataframe thead th {
        text-align: right;
    }
</style>
<table border="1" class="dataframe">
  <thead>
    <tr style="text-align: right;">
      <th></th>
      <th>#</th>
      <th>Name</th>
      <th>Type 2</th>
      <th>HP</th>
      <th>Attack</th>
      <th>Defense</th>
      <th>Sp. Atk</th>
      <th>Sp. Def</th>
      <th>Speed</th>
      <th>Generation</th>
      <th>Legendary</th>
      <th>Count</th>
    </tr>
    <tr>
      <th>Type 1</th>
      <th></th>
      <th></th>
      <th></th>
      <th></th>
      <th></th>
      <th></th>
      <th></th>
      <th></th>
      <th></th>
      <th></th>
      <th></th>
      <th></th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <th>Bug</th>
      <td>69</td>
      <td>69</td>
      <td>52</td>
      <td>69</td>
      <td>69</td>
      <td>69</td>
      <td>69</td>
      <td>69</td>
      <td>69</td>
      <td>69</td>
      <td>69</td>
      <td>69</td>
    </tr>
    <tr>
      <th>Dark</th>
      <td>31</td>
      <td>31</td>
      <td>21</td>
      <td>31</td>
      <td>31</td>
      <td>31</td>
      <td>31</td>
      <td>31</td>
      <td>31</td>
      <td>31</td>
      <td>31</td>
      <td>31</td>
    </tr>
    <tr>
      <th>Dragon</th>
      <td>32</td>
      <td>32</td>
      <td>21</td>
      <td>32</td>
      <td>32</td>
      <td>32</td>
      <td>32</td>
      <td>32</td>
      <td>32</td>
      <td>32</td>
      <td>32</td>
      <td>32</td>
    </tr>
    <tr>
      <th>Electric</th>
      <td>44</td>
      <td>44</td>
      <td>17</td>
      <td>44</td>
      <td>44</td>
      <td>44</td>
      <td>44</td>
      <td>44</td>
      <td>44</td>
      <td>44</td>
      <td>44</td>
      <td>44</td>
    </tr>
    <tr>
      <th>Fairy</th>
      <td>17</td>
      <td>17</td>
      <td>2</td>
      <td>17</td>
      <td>17</td>
      <td>17</td>
      <td>17</td>
      <td>17</td>
      <td>17</td>
      <td>17</td>
      <td>17</td>
      <td>17</td>
    </tr>
  </tbody>
</table>
</div>
      <button class="colab-df-convert" onclick="convertToInteractive('df-f44d343c-004d-4084-bfdf-a34e2cf3067a')" title="Convert this dataframe to an interactive table." style="display:none;">
        
  <svg xmlns="http://www.w3.org/2000/svg" height="24px" viewbox="0 0 24 24" width="24px">
    <path d="M0 0h24v24H0V0z" fill="none"></path>
    <path d="M18.56 5.44l.94 2.06.94-2.06 2.06-.94-2.06-.94-.94-2.06-.94 2.06-2.06.94zm-11 1L8.5 8.5l.94-2.06 2.06-.94-2.06-.94L8.5 2.5l-.94 2.06-2.06.94zm10 10l.94 2.06.94-2.06 2.06-.94-2.06-.94-.94-2.06-.94 2.06-2.06.94z"></path><path d="M17.41 7.96l-1.37-1.37c-.4-.4-.92-.59-1.43-.59-.52 0-1.04.2-1.43.59L10.3 9.45l-7.72 7.72c-.78.78-.78 2.05 0 2.83L4 21.41c.39.39.9.59 1.41.59.51 0 1.02-.2 1.41-.59l7.78-7.78 2.81-2.81c.8-.78.8-2.07 0-2.86zM5.41 20L4 18.59l7.72-7.72 1.47 1.35L5.41 20z"></path>
  </svg>
      </button>
      
  <style>
    .colab-df-container {
      display:flex;
      flex-wrap:wrap;
      gap: 12px;
    }

    .colab-df-convert {
      background-color: #E8F0FE;
      border: none;
      border-radius: 50%;
      cursor: pointer;
      display: none;
      fill: #1967D2;
      height: 32px;
      padding: 0 0 0 0;
      width: 32px;
    }

    .colab-df-convert:hover {
      background-color: #E2EBFA;
      box-shadow: 0px 1px 2px rgba(60, 64, 67, 0.3), 0px 1px 3px 1px rgba(60, 64, 67, 0.15);
      fill: #174EA6;
    }

    [theme=dark] .colab-df-convert {
      background-color: #3B4455;
      fill: #D2E3FC;
    }

    [theme=dark] .colab-df-convert:hover {
      background-color: #434B5C;
      box-shadow: 0px 1px 3px 1px rgba(0, 0, 0, 0.15);
      filter: drop-shadow(0px 1px 2px rgba(0, 0, 0, 0.3));
      fill: #FFFFFF;
    }
  </style>

      <script>
        const buttonEl =
          document.querySelector('#df-f44d343c-004d-4084-bfdf-a34e2cf3067a button.colab-df-convert');
        buttonEl.style.display =
          google.colab.kernel.accessAllowed ? 'block' : 'none';

        async function convertToInteractive(key) {
          const element = document.querySelector('#df-f44d343c-004d-4084-bfdf-a34e2cf3067a');
          const dataTable =
            await google.colab.kernel.invokeFunction('convertToInteractive',
                                                     [key], {});
          if (!dataTable) return;

          const docLinkHtml = 'Like what you see? Visit the ' +
            '<a target="_blank" href=https://colab.research.google.com/notebooks/data_table.ipynb>data table notebook'
            + ' to learn more about interactive tables.';
          element.innerHTML = '';
          dataTable['output_type'] = 'display_data';
          await google.colab.output.renderOutput(dataTable, element);
          const docLink = document.createElement('div');
          docLink.innerHTML = docLinkHtml;
          element.appendChild(docLink);
        }
      </script>
    </div>
  </div>
  
</div>

</div>

</div>
</div>

</div>
<div class="cell border-box-sizing code_cell rendered">
<div class="input">
<div class="prompt input_prompt">In [8]:</div>
<div class="inner_cell">
    <div class="input_area">
<div class=" highlight hl-python"><pre><span></span><span class="n">df</span><span class="o">.</span><span class="n">groupby</span><span class="p">([</span><span class="s1">'Type 1'</span><span class="p">,</span> <span class="s1">'Type 2'</span><span class="p">])</span><span class="o">.</span><span class="n">count</span><span class="p">()[[</span><span class="s1">'Count'</span><span class="p">]]</span>
</pre></div>

    </div>
</div>
</div>

<div class="output_wrapper">
<div class="output">


<div class="output_area">

    <div class="prompt output_prompt">Out[8]:</div>



<div class="output_html rendered_html output_subarea output_execute_result">

  <div id="df-90628a7c-e1fe-45b0-b62d-9fbb3c9632a7">
    <div class="colab-df-container">
      <div>
<style scoped>
    .dataframe tbody tr th:only-of-type {
        vertical-align: middle;
    }

    .dataframe tbody tr th {
        vertical-align: top;
    }

    .dataframe thead th {
        text-align: right;
    }
</style>
<table border="1" class="dataframe">
  <thead>
    <tr style="text-align: right;">
      <th></th>
      <th></th>
      <th>Count</th>
    </tr>
    <tr>
      <th>Type 1</th>
      <th>Type 2</th>
      <th></th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <th rowspan="5" valign="top">Bug</th>
      <th>Electric</th>
      <td>2</td>
    </tr>
    <tr>
      <th>Fighting</th>
      <td>2</td>
    </tr>
    <tr>
      <th>Fire</th>
      <td>2</td>
    </tr>
    <tr>
      <th>Flying</th>
      <td>14</td>
    </tr>
    <tr>
      <th>Ghost</th>
      <td>1</td>
    </tr>
    <tr>
      <th>...</th>
      <th>...</th>
      <td>...</td>
    </tr>
    <tr>
      <th rowspan="5" valign="top">Water</th>
      <th>Ice</th>
      <td>3</td>
    </tr>
    <tr>
      <th>Poison</th>
      <td>3</td>
    </tr>
    <tr>
      <th>Psychic</th>
      <td>5</td>
    </tr>
    <tr>
      <th>Rock</th>
      <td>4</td>
    </tr>
    <tr>
      <th>Steel</th>
      <td>1</td>
    </tr>
  </tbody>
</table>
<p>136 rows × 1 columns</p>
</div>
      <button class="colab-df-convert" onclick="convertToInteractive('df-90628a7c-e1fe-45b0-b62d-9fbb3c9632a7')" title="Convert this dataframe to an interactive table." style="display:none;">
        
  <svg xmlns="http://www.w3.org/2000/svg" height="24px" viewbox="0 0 24 24" width="24px">
    <path d="M0 0h24v24H0V0z" fill="none"></path>
    <path d="M18.56 5.44l.94 2.06.94-2.06 2.06-.94-2.06-.94-.94-2.06-.94 2.06-2.06.94zm-11 1L8.5 8.5l.94-2.06 2.06-.94-2.06-.94L8.5 2.5l-.94 2.06-2.06.94zm10 10l.94 2.06.94-2.06 2.06-.94-2.06-.94-.94-2.06-.94 2.06-2.06.94z"></path><path d="M17.41 7.96l-1.37-1.37c-.4-.4-.92-.59-1.43-.59-.52 0-1.04.2-1.43.59L10.3 9.45l-7.72 7.72c-.78.78-.78 2.05 0 2.83L4 21.41c.39.39.9.59 1.41.59.51 0 1.02-.2 1.41-.59l7.78-7.78 2.81-2.81c.8-.78.8-2.07 0-2.86zM5.41 20L4 18.59l7.72-7.72 1.47 1.35L5.41 20z"></path>
  </svg>
      </button>
      
  <style>
    .colab-df-container {
      display:flex;
      flex-wrap:wrap;
      gap: 12px;
    }

    .colab-df-convert {
      background-color: #E8F0FE;
      border: none;
      border-radius: 50%;
      cursor: pointer;
      display: none;
      fill: #1967D2;
      height: 32px;
      padding: 0 0 0 0;
      width: 32px;
    }

    .colab-df-convert:hover {
      background-color: #E2EBFA;
      box-shadow: 0px 1px 2px rgba(60, 64, 67, 0.3), 0px 1px 3px 1px rgba(60, 64, 67, 0.15);
      fill: #174EA6;
    }

    [theme=dark] .colab-df-convert {
      background-color: #3B4455;
      fill: #D2E3FC;
    }

    [theme=dark] .colab-df-convert:hover {
      background-color: #434B5C;
      box-shadow: 0px 1px 3px 1px rgba(0, 0, 0, 0.15);
      filter: drop-shadow(0px 1px 2px rgba(0, 0, 0, 0.3));
      fill: #FFFFFF;
    }
  </style>

      <script>
        const buttonEl =
          document.querySelector('#df-90628a7c-e1fe-45b0-b62d-9fbb3c9632a7 button.colab-df-convert');
        buttonEl.style.display =
          google.colab.kernel.accessAllowed ? 'block' : 'none';

        async function convertToInteractive(key) {
          const element = document.querySelector('#df-90628a7c-e1fe-45b0-b62d-9fbb3c9632a7');
          const dataTable =
            await google.colab.kernel.invokeFunction('convertToInteractive',
                                                     [key], {});
          if (!dataTable) return;

          const docLinkHtml = 'Like what you see? Visit the ' +
            '<a target="_blank" href=https://colab.research.google.com/notebooks/data_table.ipynb>data table notebook'
            + ' to learn more about interactive tables.';
          element.innerHTML = '';
          dataTable['output_type'] = 'display_data';
          await google.colab.output.renderOutput(dataTable, element);
          const docLink = document.createElement('div');
          docLink.innerHTML = docLinkHtml;
          element.appendChild(docLink);
        }
      </script>
    </div>
  </div>
  
</div>

</div>

</div>
</div>

</div>
 


    </div>



<h2 class="wp-block-heading">Kesimpulan Penggunaan Perintah Group By Pandas DataFrame</h2>



<p> Perintah group by berfungsi serupa dengan perintah group by pada SQL. Selanjutnya, perintah ini dapat digabungkan dengan beberapa perintah lain untuk proses perhitungan yang diperlukan yaitu mean, sum dan count.  Untuk artikel lain terkait dengan data science silahkan lihat kumpulan artikelnya <a href="https://onestringlab.com/tag/data-science/" target="_blank" rel="noreferrer noopener">disini</a>.  </p>
<p>The post <a href="https://onestringlab.com/group-by-pandas-dataframe-untuk-perhitungan-data/">Belajar Data Science &#8211; Group by Pandas DataFrame Untuk Perhitungan Data</a> appeared first on <a href="https://onestringlab.com">Onestring Lab</a>.</p>
]]></content:encoded>
					
		
		
			</item>
	</channel>
</rss>
