{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "# Data Analysis (Pandas)\n", "\n", "Pandas merupakan salah satu library Python yang sangat berguna untuk menangani data tabular seperti file CSV, Excel.\n", "Pada bagian ini akan ditunjukkan dasar pandas antara lain:\n", "-Import pandas\n", "-Read a CSV/Excel file\n", "-Explore data\n", "-Simple plots and data visualizations\n", "-Write a CSV/Excel file\n", "\n", "## Dataset\n", "PC Games Sales Dataset, diambil dari kaggle yang merupakan kumpulan data game pc terlaris." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Import Pandas\n", "Untuk menggunakan libary pandas, terlebih dahulu harus import." ] }, { "cell_type": "code", "execution_count": 1, "metadata": {}, "outputs": [], "source": [ "import pandas as pd" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Read CSV/Excel File" ] }, { "cell_type": "code", "execution_count": 2, "metadata": {}, "outputs": [], "source": [ "namafile=\"../GamesSales.xlsx\"\n", "dataframe=pd.read_excel(namafile)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Explore data\n" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Display Data\n", "Data dapat ditampilkan berupa dataframe.\n", "**Catatan:** nilai NaN merupakan data kosong (missing data)." ] }, { "cell_type": "code", "execution_count": 3, "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
NameSalesSeriesReleaseGenreDeveloperPublisher
07 Days to Die2.07 Days2016-06-01Survival horrorThe Fun PimpsThe Fun Pimps
1Age of Empires3.0Age of Empires1997-10-01Real-time strategyEnsemble StudiosMicrosoft
2Age of Empires II: The Age of Kings2.0Age of Empires1999-09-01Real-time strategyEnsemble StudiosMicrosoft
3Age of Empires III2.0Age of Empires2005-10-01Real-time strategyEnsemble StudiosMicrosoft
4Age of Mythology1.0Age of Empires2002-10-01Real-time strategyEnsemble StudiosMicrosoft
........................
172Where in the World Is Carmen Sandiego?4.0Carmen Sandiego1985-06-01EducationalBroderbundBroderbund
173Who Wants to Be a Millionaire?1.0NaN1999-11-01Trivia gameJellyvisionDisney Interactive Studios
174Wing Commander 3: Heart of the Tiger1.0Wing Commander1994-12-01Space combat simulationOrigin SystemsElectronic Arts
175World of Warcraft14.0Warcraft2004-11-01MMORPGBlizzard EntertainmentBlizzard Entertainment
176Zoo Tycoon1.0Zoo Tycoon2001-10-01Business simulationMicrosoftBlue Fang Games
\n", "

177 rows × 7 columns

\n", "
" ], "text/plain": [ " Name Sales Series \\\n", "0 7 Days to Die 2.0 7 Days \n", "1 Age of Empires 3.0 Age of Empires \n", "2 Age of Empires II: The Age of Kings 2.0 Age of Empires \n", "3 Age of Empires III 2.0 Age of Empires \n", "4 Age of Mythology 1.0 Age of Empires \n", ".. ... ... ... \n", "172 Where in the World Is Carmen Sandiego? 4.0 Carmen Sandiego \n", "173 Who Wants to Be a Millionaire? 1.0 NaN \n", "174 Wing Commander 3: Heart of the Tiger 1.0 Wing Commander \n", "175 World of Warcraft 14.0 Warcraft \n", "176 Zoo Tycoon 1.0 Zoo Tycoon \n", "\n", " Release Genre Developer \\\n", "0 2016-06-01 Survival horror The Fun Pimps \n", "1 1997-10-01 Real-time strategy Ensemble Studios \n", "2 1999-09-01 Real-time strategy Ensemble Studios \n", "3 2005-10-01 Real-time strategy Ensemble Studios \n", "4 2002-10-01 Real-time strategy Ensemble Studios \n", ".. ... ... ... \n", "172 1985-06-01 Educational Broderbund \n", "173 1999-11-01 Trivia game Jellyvision \n", "174 1994-12-01 Space combat simulation Origin Systems \n", "175 2004-11-01 MMORPG Blizzard Entertainment \n", "176 2001-10-01 Business simulation Microsoft \n", "\n", " Publisher \n", "0 The Fun Pimps \n", "1 Microsoft \n", "2 Microsoft \n", "3 Microsoft \n", "4 Microsoft \n", ".. ... \n", "172 Broderbund \n", "173 Disney Interactive Studios \n", "174 Electronic Arts \n", "175 Blizzard Entertainment \n", "176 Blue Fang Games \n", "\n", "[177 rows x 7 columns]" ] }, "execution_count": 3, "metadata": {}, "output_type": "execute_result" } ], "source": [ "dataframe" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Ada beberapa hal penting tentang DataFrame yang ditampilkan di sini:\n", "\n", "1. Indeks\n", "Angka yang dicetak di kolom paling kiri dari DataFrame disebut Indeks Pandas. Secara default, Indeks adalah urutan angka yang dimulai dengan nol. \n", "\n", "2. Baris x Kolom\n", "Pandas akan menampilkan berapa banyak baris dan kolom dalam kumpulan data ini di bagian bawah output (177 rows x 7 columns)." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Shape \n", "untuk memeriksa berapa banyak baris dan kolom pada dataset dapat menggunakan method .shape" ] }, { "cell_type": "code", "execution_count": 22, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "(177, 7)" ] }, "execution_count": 22, "metadata": {}, "output_type": "execute_result" } ], "source": [ "dataframe.shape" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Data Types\n", "Dalam pandas akan otomatis ditetapkan ke kolom ketika membaca file, dan dalam pandas dapat memeriksa tipe data setiap kolom dengan menggunakan method .dypes. \n", "\n", "**Pandas Tipe Data**\n", "object = string\n", "float64 = float\n", "datetime64 = date time\n", "int64 = integer" ] }, { "cell_type": "code", "execution_count": 24, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "Name object\n", "Sales float64\n", "Series object\n", "Release datetime64[ns]\n", "Genre object\n", "Developer object\n", "Publisher object\n", "dtype: object" ] }, "execution_count": 24, "metadata": {}, "output_type": "execute_result" } ], "source": [ "dataframe.dtypes" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Display First n Rows/Last n Rows\n", "Untuk melihat n baris pertama dalam DataFrame, dapat menggunakan method bernama .head().\n", "Untuk melihat n baris terakhir dalam DataFrame, dapat menggunakan method bernama .tail()." ] }, { "cell_type": "code", "execution_count": 4, "metadata": { "scrolled": true }, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
NameSalesSeriesReleaseGenreDeveloperPublisher
07 Days to Die2.07 Days2016-06-01Survival horrorThe Fun PimpsThe Fun Pimps
1Age of Empires3.0Age of Empires1997-10-01Real-time strategyEnsemble StudiosMicrosoft
\n", "
" ], "text/plain": [ " Name Sales Series Release Genre \\\n", "0 7 Days to Die 2.0 7 Days 2016-06-01 Survival horror \n", "1 Age of Empires 3.0 Age of Empires 1997-10-01 Real-time strategy \n", "\n", " Developer Publisher \n", "0 The Fun Pimps The Fun Pimps \n", "1 Ensemble Studios Microsoft " ] }, "execution_count": 4, "metadata": {}, "output_type": "execute_result" } ], "source": [ "dataframe.head(2)" ] }, { "cell_type": "code", "execution_count": 5, "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
NameSalesSeriesReleaseGenreDeveloperPublisher
174Wing Commander 3: Heart of the Tiger1.0Wing Commander1994-12-01Space combat simulationOrigin SystemsElectronic Arts
175World of Warcraft14.0Warcraft2004-11-01MMORPGBlizzard EntertainmentBlizzard Entertainment
176Zoo Tycoon1.0Zoo Tycoon2001-10-01Business simulationMicrosoftBlue Fang Games
\n", "
" ], "text/plain": [ " Name Sales Series Release \\\n", "174 Wing Commander 3: Heart of the Tiger 1.0 Wing Commander 1994-12-01 \n", "175 World of Warcraft 14.0 Warcraft 2004-11-01 \n", "176 Zoo Tycoon 1.0 Zoo Tycoon 2001-10-01 \n", "\n", " Genre Developer Publisher \n", "174 Space combat simulation Origin Systems Electronic Arts \n", "175 MMORPG Blizzard Entertainment Blizzard Entertainment \n", "176 Business simulation Microsoft Blue Fang Games " ] }, "execution_count": 5, "metadata": {}, "output_type": "execute_result" } ], "source": [ "dataframe.tail(3)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Get Info\n", "Untuk mendapatkan info semua kolom dalam DataFrame dapat menggunakan method .info()" ] }, { "cell_type": "code", "execution_count": 6, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "\n", "RangeIndex: 177 entries, 0 to 176\n", "Data columns (total 7 columns):\n", " # Column Non-Null Count Dtype \n", "--- ------ -------------- ----- \n", " 0 Name 177 non-null object \n", " 1 Sales 177 non-null float64 \n", " 2 Series 141 non-null object \n", " 3 Release 177 non-null datetime64[ns]\n", " 4 Genre 177 non-null object \n", " 5 Developer 177 non-null object \n", " 6 Publisher 177 non-null object \n", "dtypes: datetime64[ns](1), float64(1), object(5)\n", "memory usage: 9.8+ KB\n" ] } ], "source": [ "dataframe.info()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Calculate Summary Statistics\n", "Untuk menghitung ringkasan statistik pada setiap kolom di DataFrame dapat menggunakan method .describe()" ] }, { "cell_type": "code", "execution_count": 7, "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
Sales
count177.000000
mean3.116949
std4.937466
min1.000000
25%1.000000
50%1.500000
75%3.000000
max42.000000
\n", "
" ], "text/plain": [ " Sales\n", "count 177.000000\n", "mean 3.116949\n", "std 4.937466\n", "min 1.000000\n", "25% 1.000000\n", "50% 1.500000\n", "75% 3.000000\n", "max 42.000000" ] }, "execution_count": 7, "metadata": {}, "output_type": "execute_result" } ], "source": [ "dataframe.describe()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Select Columns\n", "Secara teknis satu kolom dataframe termasuk _series object_" ] }, { "cell_type": "code", "execution_count": 10, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "0 7 Days to Die\n", "1 Age of Empires\n", "2 Age of Empires II: The Age of Kings\n", "3 Age of Empires III\n", "4 Age of Mythology\n", " ... \n", "172 Where in the World Is Carmen Sandiego?\n", "173 Who Wants to Be a Millionaire?\n", "174 Wing Commander 3: Heart of the Tiger\n", "175 World of Warcraft\n", "176 Zoo Tycoon\n", "Name: Name, Length: 177, dtype: object" ] }, "execution_count": 10, "metadata": {}, "output_type": "execute_result" } ], "source": [ "dataframe['Name']" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Jika ingin menampilkan kolom sebagai dataframe harus menggunakan dua tanda kurung siku." ] }, { "cell_type": "code", "execution_count": 11, "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
Name
07 Days to Die
1Age of Empires
2Age of Empires II: The Age of Kings
3Age of Empires III
4Age of Mythology
......
172Where in the World Is Carmen Sandiego?
173Who Wants to Be a Millionaire?
174Wing Commander 3: Heart of the Tiger
175World of Warcraft
176Zoo Tycoon
\n", "

177 rows × 1 columns

\n", "
" ], "text/plain": [ " Name\n", "0 7 Days to Die\n", "1 Age of Empires\n", "2 Age of Empires II: The Age of Kings\n", "3 Age of Empires III\n", "4 Age of Mythology\n", ".. ...\n", "172 Where in the World Is Carmen Sandiego?\n", "173 Who Wants to Be a Millionaire?\n", "174 Wing Commander 3: Heart of the Tiger\n", "175 World of Warcraft\n", "176 Zoo Tycoon\n", "\n", "[177 rows x 1 columns]" ] }, "execution_count": 11, "metadata": {}, "output_type": "execute_result" } ], "source": [ "dataframe[['Name']]" ] }, { "cell_type": "code", "execution_count": 13, "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
NamePublisher
07 Days to DieThe Fun Pimps
1Age of EmpiresMicrosoft
2Age of Empires II: The Age of KingsMicrosoft
3Age of Empires IIIMicrosoft
4Age of MythologyMicrosoft
.........
172Where in the World Is Carmen Sandiego?Broderbund
173Who Wants to Be a Millionaire?Disney Interactive Studios
174Wing Commander 3: Heart of the TigerElectronic Arts
175World of WarcraftBlizzard Entertainment
176Zoo TycoonBlue Fang Games
\n", "

177 rows × 2 columns

\n", "
" ], "text/plain": [ " Name Publisher\n", "0 7 Days to Die The Fun Pimps\n", "1 Age of Empires Microsoft\n", "2 Age of Empires II: The Age of Kings Microsoft\n", "3 Age of Empires III Microsoft\n", "4 Age of Mythology Microsoft\n", ".. ... ...\n", "172 Where in the World Is Carmen Sandiego? Broderbund\n", "173 Who Wants to Be a Millionaire? Disney Interactive Studios\n", "174 Wing Commander 3: Heart of the Tiger Electronic Arts\n", "175 World of Warcraft Blizzard Entertainment\n", "176 Zoo Tycoon Blue Fang Games\n", "\n", "[177 rows x 2 columns]" ] }, "execution_count": 13, "metadata": {}, "output_type": "execute_result" } ], "source": [ "dataframe[['Name','Publisher']]" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Count Values" ] }, { "cell_type": "code", "execution_count": 15, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "Electronic Arts 19\n", "Blizzard Entertainment 10\n", "Paradox Interactive 7\n", "Activision 6\n", "GT Interactive 5\n", " ..\n", "Tripwire Interactive 1\n", "Warhorse Studios 1\n", "Impressions Game 1\n", "Amanita Design 1\n", "Blue Fang Games 1\n", "Name: Publisher, Length: 96, dtype: int64" ] }, "execution_count": 15, "metadata": {}, "output_type": "execute_result" } ], "source": [ "dataframe['Publisher'].value_counts()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Untuk memilih 10 nilai teratas yang paling sering muncul dapat dikombinasikan menggunakan value_counts() dengan _python list slicing_" ] }, { "cell_type": "code", "execution_count": 16, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "Electronic Arts 19\n", "Blizzard Entertainment 10\n", "Paradox Interactive 7\n", "Activision 6\n", "GT Interactive 5\n", "Microsoft 4\n", "Gathering of Developers 4\n", "Capcom 4\n", "Virgin Interactive 3\n", "THQ 3\n", "Name: Publisher, dtype: int64" ] }, "execution_count": 16, "metadata": {}, "output_type": "execute_result" } ], "source": [ "dataframe['Publisher'].value_counts()[:10]" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Filter Data\n", "Dalam Pandas DataFrame dapat memfilter nilai pada kolom tertentu sesuai yang ingin ditampilkan." ] }, { "cell_type": "code", "execution_count": 19, "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
NameSalesSeriesReleaseGenreDeveloperPublisher
5American McGee's Alice1.0Alice2000-10-01Action-adventure, platformerRogue EntertainmentElectronic Arts
13Battlefield 19422.0Battlefield2002-09-01First-person shooterEA DICEElectronic Arts
14Battlefield Vietnam1.0Battlefield2004-03-01First-person shooterEA DICEElectronic Arts
26Command & Conquer 3: Tiberium Wars1.0Command & Conquer2007-03-01Real-time strategyEA Los AngelesElectronic Arts
28Command & Conquer: Red Alert 21.0Command & Conquer2000-10-01Real-time strategyWestwood PacificElectronic Arts
29Command & Conquer: Tiberian Sun1.0Command & Conquer1999-08-01Real-time strategyWestwood StudiosElectronic Arts
36Crysis3.0Crysis2007-11-01First-person shooterCrytekElectronic Arts
37Crysis Warhead1.0Crysis2008-09-01First-person shooterCrytek BudapestElectronic Arts
75Harry Potter and the Philosopher's Stone1.0Harry Potter2001-11-01Action-adventureKnowWonderElectronic Arts
107Populous4.0Populous1989-06-01God gameBullfrog ProductionsElectronic Arts
127SimCity2.0SimCity2013-03-01City-buildingElectronic ArtsElectronic Arts
128SimCity 30005.0SimCity1999-01-01City-buildingMaxisElectronic Arts
131Spore2.0Spore2008-09-01God gameMaxisElectronic Arts
153The Sims11.0The Sims2000-02-01Life simulationMaxisElectronic Arts
154The Sims 26.0The Sims2004-09-01Life simulationMaxisElectronic Arts
155The Sims 37.0The Sims2009-06-01Life simulationMaxisElectronic Arts
160Theme Park3.0Theme Park2005-06-01Construction and management simulationBullfrog ProductionsElectronic Arts
171Warhammer Online: Age of Reckoning1.0Warhammer2008-09-01MMORPGMythic EntertainmentElectronic Arts
174Wing Commander 3: Heart of the Tiger1.0Wing Commander1994-12-01Space combat simulationOrigin SystemsElectronic Arts
\n", "
" ], "text/plain": [ " Name Sales Series \\\n", "5 American McGee's Alice 1.0 Alice \n", "13 Battlefield 1942 2.0 Battlefield \n", "14 Battlefield Vietnam 1.0 Battlefield \n", "26 Command & Conquer 3: Tiberium Wars 1.0 Command & Conquer \n", "28 Command & Conquer: Red Alert 2 1.0 Command & Conquer \n", "29 Command & Conquer: Tiberian Sun 1.0 Command & Conquer \n", "36 Crysis 3.0 Crysis \n", "37 Crysis Warhead 1.0 Crysis \n", "75 Harry Potter and the Philosopher's Stone 1.0 Harry Potter \n", "107 Populous 4.0 Populous \n", "127 SimCity 2.0 SimCity \n", "128 SimCity 3000 5.0 SimCity \n", "131 Spore 2.0 Spore \n", "153 The Sims 11.0 The Sims \n", "154 The Sims 2 6.0 The Sims \n", "155 The Sims 3 7.0 The Sims \n", "160 Theme Park 3.0 Theme Park \n", "171 Warhammer Online: Age of Reckoning 1.0 Warhammer \n", "174 Wing Commander 3: Heart of the Tiger 1.0 Wing Commander \n", "\n", " Release Genre Developer \\\n", "5 2000-10-01 Action-adventure, platformer Rogue Entertainment \n", "13 2002-09-01 First-person shooter EA DICE \n", "14 2004-03-01 First-person shooter EA DICE \n", "26 2007-03-01 Real-time strategy EA Los Angeles \n", "28 2000-10-01 Real-time strategy Westwood Pacific \n", "29 1999-08-01 Real-time strategy Westwood Studios \n", "36 2007-11-01 First-person shooter Crytek \n", "37 2008-09-01 First-person shooter Crytek Budapest \n", "75 2001-11-01 Action-adventure KnowWonder \n", "107 1989-06-01 God game Bullfrog Productions \n", "127 2013-03-01 City-building Electronic Arts \n", "128 1999-01-01 City-building Maxis \n", "131 2008-09-01 God game Maxis \n", "153 2000-02-01 Life simulation Maxis \n", "154 2004-09-01 Life simulation Maxis \n", "155 2009-06-01 Life simulation Maxis \n", "160 2005-06-01 Construction and management simulation Bullfrog Productions \n", "171 2008-09-01 MMORPG Mythic Entertainment \n", "174 1994-12-01 Space combat simulation Origin Systems \n", "\n", " Publisher \n", "5 Electronic Arts \n", "13 Electronic Arts \n", "14 Electronic Arts \n", "26 Electronic Arts \n", "28 Electronic Arts \n", "29 Electronic Arts \n", "36 Electronic Arts \n", "37 Electronic Arts \n", "75 Electronic Arts \n", "107 Electronic Arts \n", "127 Electronic Arts \n", "128 Electronic Arts \n", "131 Electronic Arts \n", "153 Electronic Arts \n", "154 Electronic Arts \n", "155 Electronic Arts \n", "160 Electronic Arts \n", "171 Electronic Arts \n", "174 Electronic Arts " ] }, "execution_count": 19, "metadata": {}, "output_type": "execute_result" } ], "source": [ "dataframe[dataframe['Publisher'] == 'Electronic Arts']" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Missing Data\n", "Analisis data pastinya menjadi familiar dengan missing value. Missing value adalah hilangnya beberapa data yang diperoleh. Untuk mendapatkan data yang hilang dapat menggunakan method .isna() / .notna(). Panda memiliki cara untuk menangani data yang hilang, seperti yang sudah diketahui, nilai kosong di file yang telah diimport akan muncul sebagai NaN di Pandas DataFrame." ] }, { "cell_type": "code", "execution_count": 33, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "False 141\n", "True 36\n", "Name: Series, dtype: int64" ] }, "execution_count": 33, "metadata": {}, "output_type": "execute_result" } ], "source": [ "dataframe['Series'].isna().value_counts()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Add Columns\n", "Untuk menambahkan kolom baru, cukup memasukan nama kolom baru dalam tanda kurung siku" ] }, { "cell_type": "code", "execution_count": 36, "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
NameSalesSeriesReleaseGenreDeveloperPublisherdev
07 Days to Die2.07 Days2016-06-01Survival horrorThe Fun PimpsThe Fun PimpsThe Fun Pimps
1Age of Empires3.0Age of Empires1997-10-01Real-time strategyEnsemble StudiosMicrosoftEnsemble Studios
2Age of Empires II: The Age of Kings2.0Age of Empires1999-09-01Real-time strategyEnsemble StudiosMicrosoftEnsemble Studios
3Age of Empires III2.0Age of Empires2005-10-01Real-time strategyEnsemble StudiosMicrosoftEnsemble Studios
4Age of Mythology1.0Age of Empires2002-10-01Real-time strategyEnsemble StudiosMicrosoftEnsemble Studios
...........................
172Where in the World Is Carmen Sandiego?4.0Carmen Sandiego1985-06-01EducationalBroderbundBroderbundBroderbund
173Who Wants to Be a Millionaire?1.0NaN1999-11-01Trivia gameJellyvisionDisney Interactive StudiosJellyvision
174Wing Commander 3: Heart of the Tiger1.0Wing Commander1994-12-01Space combat simulationOrigin SystemsElectronic ArtsOrigin Systems
175World of Warcraft14.0Warcraft2004-11-01MMORPGBlizzard EntertainmentBlizzard EntertainmentBlizzard Entertainment
176Zoo Tycoon1.0Zoo Tycoon2001-10-01Business simulationMicrosoftBlue Fang GamesMicrosoft
\n", "

177 rows × 8 columns

\n", "
" ], "text/plain": [ " Name Sales Series \\\n", "0 7 Days to Die 2.0 7 Days \n", "1 Age of Empires 3.0 Age of Empires \n", "2 Age of Empires II: The Age of Kings 2.0 Age of Empires \n", "3 Age of Empires III 2.0 Age of Empires \n", "4 Age of Mythology 1.0 Age of Empires \n", ".. ... ... ... \n", "172 Where in the World Is Carmen Sandiego? 4.0 Carmen Sandiego \n", "173 Who Wants to Be a Millionaire? 1.0 NaN \n", "174 Wing Commander 3: Heart of the Tiger 1.0 Wing Commander \n", "175 World of Warcraft 14.0 Warcraft \n", "176 Zoo Tycoon 1.0 Zoo Tycoon \n", "\n", " Release Genre Developer \\\n", "0 2016-06-01 Survival horror The Fun Pimps \n", "1 1997-10-01 Real-time strategy Ensemble Studios \n", "2 1999-09-01 Real-time strategy Ensemble Studios \n", "3 2005-10-01 Real-time strategy Ensemble Studios \n", "4 2002-10-01 Real-time strategy Ensemble Studios \n", ".. ... ... ... \n", "172 1985-06-01 Educational Broderbund \n", "173 1999-11-01 Trivia game Jellyvision \n", "174 1994-12-01 Space combat simulation Origin Systems \n", "175 2004-11-01 MMORPG Blizzard Entertainment \n", "176 2001-10-01 Business simulation Microsoft \n", "\n", " Publisher dev \n", "0 The Fun Pimps The Fun Pimps \n", "1 Microsoft Ensemble Studios \n", "2 Microsoft Ensemble Studios \n", "3 Microsoft Ensemble Studios \n", "4 Microsoft Ensemble Studios \n", ".. ... ... \n", "172 Broderbund Broderbund \n", "173 Disney Interactive Studios Jellyvision \n", "174 Electronic Arts Origin Systems \n", "175 Blizzard Entertainment Blizzard Entertainment \n", "176 Blue Fang Games Microsoft \n", "\n", "[177 rows x 8 columns]" ] }, "execution_count": 36, "metadata": {}, "output_type": "execute_result" } ], "source": [ "dataframe['dev'] = dataframe['Developer']\n", "dataframe" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Drop Columns\n", "Untuk menghapus kolom dalam dataframe dapat menggunakan method .drop()" ] }, { "cell_type": "code", "execution_count": 37, "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
NameSalesSeriesReleaseGenreDeveloperPublisher
07 Days to Die2.07 Days2016-06-01Survival horrorThe Fun PimpsThe Fun Pimps
1Age of Empires3.0Age of Empires1997-10-01Real-time strategyEnsemble StudiosMicrosoft
2Age of Empires II: The Age of Kings2.0Age of Empires1999-09-01Real-time strategyEnsemble StudiosMicrosoft
3Age of Empires III2.0Age of Empires2005-10-01Real-time strategyEnsemble StudiosMicrosoft
4Age of Mythology1.0Age of Empires2002-10-01Real-time strategyEnsemble StudiosMicrosoft
........................
172Where in the World Is Carmen Sandiego?4.0Carmen Sandiego1985-06-01EducationalBroderbundBroderbund
173Who Wants to Be a Millionaire?1.0NaN1999-11-01Trivia gameJellyvisionDisney Interactive Studios
174Wing Commander 3: Heart of the Tiger1.0Wing Commander1994-12-01Space combat simulationOrigin SystemsElectronic Arts
175World of Warcraft14.0Warcraft2004-11-01MMORPGBlizzard EntertainmentBlizzard Entertainment
176Zoo Tycoon1.0Zoo Tycoon2001-10-01Business simulationMicrosoftBlue Fang Games
\n", "

177 rows × 7 columns

\n", "
" ], "text/plain": [ " Name Sales Series \\\n", "0 7 Days to Die 2.0 7 Days \n", "1 Age of Empires 3.0 Age of Empires \n", "2 Age of Empires II: The Age of Kings 2.0 Age of Empires \n", "3 Age of Empires III 2.0 Age of Empires \n", "4 Age of Mythology 1.0 Age of Empires \n", ".. ... ... ... \n", "172 Where in the World Is Carmen Sandiego? 4.0 Carmen Sandiego \n", "173 Who Wants to Be a Millionaire? 1.0 NaN \n", "174 Wing Commander 3: Heart of the Tiger 1.0 Wing Commander \n", "175 World of Warcraft 14.0 Warcraft \n", "176 Zoo Tycoon 1.0 Zoo Tycoon \n", "\n", " Release Genre Developer \\\n", "0 2016-06-01 Survival horror The Fun Pimps \n", "1 1997-10-01 Real-time strategy Ensemble Studios \n", "2 1999-09-01 Real-time strategy Ensemble Studios \n", "3 2005-10-01 Real-time strategy Ensemble Studios \n", "4 2002-10-01 Real-time strategy Ensemble Studios \n", ".. ... ... ... \n", "172 1985-06-01 Educational Broderbund \n", "173 1999-11-01 Trivia game Jellyvision \n", "174 1994-12-01 Space combat simulation Origin Systems \n", "175 2004-11-01 MMORPG Blizzard Entertainment \n", "176 2001-10-01 Business simulation Microsoft \n", "\n", " Publisher \n", "0 The Fun Pimps \n", "1 Microsoft \n", "2 Microsoft \n", "3 Microsoft \n", "4 Microsoft \n", ".. ... \n", "172 Broderbund \n", "173 Disney Interactive Studios \n", "174 Electronic Arts \n", "175 Blizzard Entertainment \n", "176 Blue Fang Games \n", "\n", "[177 rows x 7 columns]" ] }, "execution_count": 37, "metadata": {}, "output_type": "execute_result" } ], "source": [ "dataframe = dataframe.drop(columns=\"dev\")\n", "dataframe" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Sort Columns\n", "Kolom dalam dataframe dapat diurutkan menggunakan method .sort_values sesuai dengan parameter by= yang menunjukkan nama kolom yang ingin diurutkan disertai tanda kutip. Misalkan data kolom \"Sales\" diurutkan berdasarkan nilai yang paling besar ke terkecil seperti dibawah ini." ] }, { "cell_type": "code", "execution_count": 38, "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
NameSalesSeriesReleaseGenreDeveloperPublisher
105PlayerUnknown's Battlegrounds42.0NaN2017-12-01Battle royalePUBG StudiosKrafton
95Minecraft33.0Minecraft2011-11-01Sandbox, survivalMojang StudiosMojang Studios
67Garry's Mod20.0NaN2006-11-01SandboxFacepunch StudiosValve
50Diablo III20.0Diablo2012-05-01Action role-playingBlizzard EntertainmentBlizzard Entertainment
146Terraria17.2NaN2011-05-01Action-adventureRe-LogicRe-Logic
........................
41Danganronpa: Trigger Happy Havoc1.0Danganronpa2016-02-01Visual novel, adventureSpike ChunsoftSpike Chunsoft
45Daryl F. Gates' Police Quest: SWAT1.0Police Quest1995-09-01Interactive movieSierra OnlineSierra Online
47Deer Hunter1.0Deer Hunter1997-11-01SportsSunstorm InteractiveWizardWorks
103Phantasmagoria1.0Phantasmagoria1995-07-01Interactive movieSierra OnlineSierra Online
176Zoo Tycoon1.0Zoo Tycoon2001-10-01Business simulationMicrosoftBlue Fang Games
\n", "

177 rows × 7 columns

\n", "
" ], "text/plain": [ " Name Sales Series Release \\\n", "105 PlayerUnknown's Battlegrounds 42.0 NaN 2017-12-01 \n", "95 Minecraft 33.0 Minecraft 2011-11-01 \n", "67 Garry's Mod 20.0 NaN 2006-11-01 \n", "50 Diablo III 20.0 Diablo 2012-05-01 \n", "146 Terraria 17.2 NaN 2011-05-01 \n", ".. ... ... ... ... \n", "41 Danganronpa: Trigger Happy Havoc 1.0 Danganronpa 2016-02-01 \n", "45 Daryl F. Gates' Police Quest: SWAT 1.0 Police Quest 1995-09-01 \n", "47 Deer Hunter 1.0 Deer Hunter 1997-11-01 \n", "103 Phantasmagoria 1.0 Phantasmagoria 1995-07-01 \n", "176 Zoo Tycoon 1.0 Zoo Tycoon 2001-10-01 \n", "\n", " Genre Developer Publisher \n", "105 Battle royale PUBG Studios Krafton \n", "95 Sandbox, survival Mojang Studios Mojang Studios \n", "67 Sandbox Facepunch Studios Valve \n", "50 Action role-playing Blizzard Entertainment Blizzard Entertainment \n", "146 Action-adventure Re-Logic Re-Logic \n", ".. ... ... ... \n", "41 Visual novel, adventure Spike Chunsoft Spike Chunsoft \n", "45 Interactive movie Sierra Online Sierra Online \n", "47 Sports Sunstorm Interactive WizardWorks \n", "103 Interactive movie Sierra Online Sierra Online \n", "176 Business simulation Microsoft Blue Fang Games \n", "\n", "[177 rows x 7 columns]" ] }, "execution_count": 38, "metadata": {}, "output_type": "execute_result" } ], "source": [ "dataframe.sort_values(by='Sales', ascending=False)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Check for Duplicates\n", "Untuk mengecek duplikasi yang ada dalam database dapat menggunakan method .duplicated()" ] }, { "cell_type": "code", "execution_count": 40, "metadata": { "scrolled": true }, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
NameSalesSeriesReleaseGenreDeveloperPublisher
135StarCraft II: Heart of the Swarm1.0StarCraft2013-03-01Real-time strategyBlizzard EntertainmentBlizzard Entertainment
136StarCraft II: Heart of the Swarm1.0StarCraft2013-03-01Real-time strategyBlizzard EntertainmentBlizzard Entertainment
137StarCraft II: Legacy of the Void1.0StarCraft2015-11-01Real-time strategyBlizzard EntertainmentBlizzard Entertainment
138StarCraft II: Legacy of the Void1.0StarCraft2015-11-01Real-time strategyBlizzard EntertainmentBlizzard Entertainment
\n", "
" ], "text/plain": [ " Name Sales Series Release \\\n", "135 StarCraft II: Heart of the Swarm 1.0 StarCraft 2013-03-01 \n", "136 StarCraft II: Heart of the Swarm 1.0 StarCraft 2013-03-01 \n", "137 StarCraft II: Legacy of the Void 1.0 StarCraft 2015-11-01 \n", "138 StarCraft II: Legacy of the Void 1.0 StarCraft 2015-11-01 \n", "\n", " Genre Developer Publisher \n", "135 Real-time strategy Blizzard Entertainment Blizzard Entertainment \n", "136 Real-time strategy Blizzard Entertainment Blizzard Entertainment \n", "137 Real-time strategy Blizzard Entertainment Blizzard Entertainment \n", "138 Real-time strategy Blizzard Entertainment Blizzard Entertainment " ] }, "execution_count": 40, "metadata": {}, "output_type": "execute_result" } ], "source": [ "dataframe[dataframe.duplicated(keep=False)]" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Calculate Columns\n", "Dalam pandas dapat dilakukan perhitungan berbeda pada kolom dengan fungsi bawaan, dan perhitungan ini akan mengabaikan nilai NaN. Antara lain:\n", "\n", "| Method Perhitungan Pandas | Penjelasan |\n", "| :------------ | -------------: |\n", "|.count()|Jumlah data dalam tabel|\n", "|.sum()|Jumlah nilai|\n", "|.mean()|Nilai rata-rata|\n", "|.median()|Nilai Median/nilai tengah|\n", "|.min()|Nilai minimum/terkecil|\n", "|.max()|Nilai maksimum/terbesar|\n", "|.std()|standard deviation/simpangan baku|\n", "\n", "contohnya:\n" ] }, { "cell_type": "code", "execution_count": 46, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "3.116949152542373" ] }, "execution_count": 46, "metadata": {}, "output_type": "execute_result" } ], "source": [ "dataframe['Sales'].mean()" ] }, { "cell_type": "code", "execution_count": 47, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "42.0" ] }, "execution_count": 47, "metadata": {}, "output_type": "execute_result" } ], "source": [ "dataframe['Sales'].max()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Clean and Transform Data\n", "Pembersihan data merupakan proses di mana data yang tidak akurat, diformat dengan kurang baik, atau berantakan akan diatur dan diperbaiki. Transformasi data adalah proses mengubah data dari satu format atau struktur ke format atau struktur lainnya. Beberapa method untuk _cleaning and transforming data_ yang dapat digunakan dalam pandas antara lain:\n", "\n", "#### Pandas .str Methods\n", "| Method String Pandas | Penjelasan |\n", "| :------------ | -------------: |\n", "|df['column_name'].str.lower()|membuat string di setiap baris menjadi huruf kecil|\n", "|df['column_name'].str.upper()|membuat string di setiap baris menjadi huruf besar|\n", "|df['column_name'].str.title()|Mengonversi karakter pertama setiap kata menjadi huruf besar dan sisanya menjadi huruf kecil.|\n", "|df['column_name'].str.replace('old string', 'new string')|Ganti setiap kemunculan pola/regex di Seri/Indeks.|\n", "|df['column_name'].str.contains('pattern/string')|Mengecek apakah setiap baris berisi pola/string tersebut|\n", "|df['column_name'].str.split('delim')|Mengembalikan substring yang dipisahkan oleh batas yang diberikan|\n", "|df['column_name'].str.join(list)|Kebalikan dari .split(), ini menggabungkan elemen dalam list berupa string|\n", "\n", "Contoh:" ] }, { "cell_type": "code", "execution_count": 49, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "0 7 DAYS\n", "1 AGE OF EMPIRES\n", "2 AGE OF EMPIRES\n", "3 AGE OF EMPIRES\n", "4 AGE OF EMPIRES\n", " ... \n", "172 CARMEN SANDIEGO\n", "173 NaN\n", "174 WING COMMANDER\n", "175 WARCRAFT\n", "176 ZOO TYCOON\n", "Name: Series, Length: 177, dtype: object" ] }, "execution_count": 49, "metadata": {}, "output_type": "execute_result" } ], "source": [ "dataframe['Series'].str.upper()" ] }, { "cell_type": "code", "execution_count": 52, "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
NameSalesSeriesReleaseGenreDeveloperPublisher
1Age of Empires3.0Age of Empires1997-10-01Real-time strategyEnsemble StudiosMicrosoft
2Age of Empires II: The Age of Kings2.0Age of Empires1999-09-01Real-time strategyEnsemble StudiosMicrosoft
3Age of Empires III2.0Age of Empires2005-10-01Real-time strategyEnsemble StudiosMicrosoft
4Age of Mythology1.0Age of Empires2002-10-01Real-time strategyEnsemble StudiosMicrosoft
21Civilization II1.0Civilization1996-02-01Turn-based strategy, 4XMicroProseMicroProse
22Civilization III2.0Civilization2001-10-01Turn-based strategy, 4XFiraxis GamesInfogrames
23Civilization IV3.0Civilization2005-10-01Turn-based strategy, 4XFiraxis Games2K Games & Aspyr
24Civilization V8.0Civilization2010-09-01Turn-based strategy, 4XFiraxis Games2K Games & Aspyr
25Command & Conquer3.0Command & Conquer1995-08-01Real-time strategyWestwood StudiosVirgin Interactive
26Command & Conquer 3: Tiberium Wars1.0Command & Conquer2007-03-01Real-time strategyEA Los AngelesElectronic Arts
\n", "
" ], "text/plain": [ " Name Sales Series Release \\\n", "1 Age of Empires 3.0 Age of Empires 1997-10-01 \n", "2 Age of Empires II: The Age of Kings 2.0 Age of Empires 1999-09-01 \n", "3 Age of Empires III 2.0 Age of Empires 2005-10-01 \n", "4 Age of Mythology 1.0 Age of Empires 2002-10-01 \n", "21 Civilization II 1.0 Civilization 1996-02-01 \n", "22 Civilization III 2.0 Civilization 2001-10-01 \n", "23 Civilization IV 3.0 Civilization 2005-10-01 \n", "24 Civilization V 8.0 Civilization 2010-09-01 \n", "25 Command & Conquer 3.0 Command & Conquer 1995-08-01 \n", "26 Command & Conquer 3: Tiberium Wars 1.0 Command & Conquer 2007-03-01 \n", "\n", " Genre Developer Publisher \n", "1 Real-time strategy Ensemble Studios Microsoft \n", "2 Real-time strategy Ensemble Studios Microsoft \n", "3 Real-time strategy Ensemble Studios Microsoft \n", "4 Real-time strategy Ensemble Studios Microsoft \n", "21 Turn-based strategy, 4X MicroProse MicroProse \n", "22 Turn-based strategy, 4X Firaxis Games Infogrames \n", "23 Turn-based strategy, 4X Firaxis Games 2K Games & Aspyr \n", "24 Turn-based strategy, 4X Firaxis Games 2K Games & Aspyr \n", "25 Real-time strategy Westwood Studios Virgin Interactive \n", "26 Real-time strategy EA Los Angeles Electronic Arts " ] }, "execution_count": 52, "metadata": {}, "output_type": "execute_result" } ], "source": [ "dataframe[dataframe['Genre'].str.contains('strategy')].head(10)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "#### Applying Functions\n", "Dengan menggunakan method .apply(), dapat menjalankan sebuah fungsi pada setiap baris dalam kolom pada dataframe." ] }, { "cell_type": "code", "execution_count": 55, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "0 [7, Days, to, Die]\n", "1 [Age, of, Empires]\n", "2 [Age, of, Empires, II:, The, Age, of, Kings]\n", "3 [Age, of, Empires, III]\n", "4 [Age, of, Mythology]\n", " ... \n", "172 [Where, in, the, World, Is, Carmen, Sandiego?]\n", "173 [Who, Wants, to, Be, a, Millionaire?]\n", "174 [Wing, Commander, 3:, Heart, of, the, Tiger]\n", "175 [World, of, Warcraft]\n", "176 [Zoo, Tycoon]\n", "Name: Name, Length: 177, dtype: object" ] }, "execution_count": 55, "metadata": {}, "output_type": "execute_result" } ], "source": [ "def splitText(text):\n", " splitdulu = text.split()\n", " return splitdulu\n", "\n", "dataframe['Name'].apply(splitText)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Merge Dataframe\n", "Jika ada dua kumpulan dataset yang terbagi, dalam pandas dapat juga digabungkan menjadi satu dengan menggunakan method .merge()." ] }, { "cell_type": "code", "execution_count": 61, "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
NameSalesSeriesReleaseGenreDeveloper
07 Days to Die2.07 Days2016-06-01Survival horrorThe Fun Pimps
1Age of Empires3.0Age of Empires1997-10-01Real-time strategyEnsemble Studios
2Age of Empires II: The Age of Kings2.0Age of Empires1999-09-01Real-time strategyEnsemble Studios
3Age of Empires III2.0Age of Empires2005-10-01Real-time strategyEnsemble Studios
4Age of Mythology1.0Age of Empires2002-10-01Real-time strategyEnsemble Studios
.....................
172Where in the World Is Carmen Sandiego?4.0Carmen Sandiego1985-06-01EducationalBroderbund
173Who Wants to Be a Millionaire?1.0NaN1999-11-01Trivia gameJellyvision
174Wing Commander 3: Heart of the Tiger1.0Wing Commander1994-12-01Space combat simulationOrigin Systems
175World of Warcraft14.0Warcraft2004-11-01MMORPGBlizzard Entertainment
176Zoo Tycoon1.0Zoo Tycoon2001-10-01Business simulationMicrosoft
\n", "

177 rows × 6 columns

\n", "
" ], "text/plain": [ " Name Sales Series \\\n", "0 7 Days to Die 2.0 7 Days \n", "1 Age of Empires 3.0 Age of Empires \n", "2 Age of Empires II: The Age of Kings 2.0 Age of Empires \n", "3 Age of Empires III 2.0 Age of Empires \n", "4 Age of Mythology 1.0 Age of Empires \n", ".. ... ... ... \n", "172 Where in the World Is Carmen Sandiego? 4.0 Carmen Sandiego \n", "173 Who Wants to Be a Millionaire? 1.0 NaN \n", "174 Wing Commander 3: Heart of the Tiger 1.0 Wing Commander \n", "175 World of Warcraft 14.0 Warcraft \n", "176 Zoo Tycoon 1.0 Zoo Tycoon \n", "\n", " Release Genre Developer \n", "0 2016-06-01 Survival horror The Fun Pimps \n", "1 1997-10-01 Real-time strategy Ensemble Studios \n", "2 1999-09-01 Real-time strategy Ensemble Studios \n", "3 2005-10-01 Real-time strategy Ensemble Studios \n", "4 2002-10-01 Real-time strategy Ensemble Studios \n", ".. ... ... ... \n", "172 1985-06-01 Educational Broderbund \n", "173 1999-11-01 Trivia game Jellyvision \n", "174 1994-12-01 Space combat simulation Origin Systems \n", "175 2004-11-01 MMORPG Blizzard Entertainment \n", "176 2001-10-01 Business simulation Microsoft \n", "\n", "[177 rows x 6 columns]" ] }, "execution_count": 61, "metadata": {}, "output_type": "execute_result" } ], "source": [ "namafile=\"Games Sales- Dev.xlsx\"\n", "dataframe=pd.read_excel(namafile)\n", "namafile2=\"Games Sales- Publisher.xlsx\"\n", "dataframe2=pd.read_excel(namafile2)\n", "\n", "dataframe" ] }, { "cell_type": "code", "execution_count": 62, "metadata": { "scrolled": true }, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
NamePublisher
07 Days to DieThe Fun Pimps
1Age of EmpiresMicrosoft
2Age of Empires II: The Age of KingsMicrosoft
3Age of Empires IIIMicrosoft
4Age of MythologyMicrosoft
.........
172Where in the World Is Carmen Sandiego?Broderbund
173Who Wants to Be a Millionaire?Disney Interactive Studios
174Wing Commander 3: Heart of the TigerElectronic Arts
175World of WarcraftBlizzard Entertainment
176Zoo TycoonBlue Fang Games
\n", "

177 rows × 2 columns

\n", "
" ], "text/plain": [ " Name Publisher\n", "0 7 Days to Die The Fun Pimps\n", "1 Age of Empires Microsoft\n", "2 Age of Empires II: The Age of Kings Microsoft\n", "3 Age of Empires III Microsoft\n", "4 Age of Mythology Microsoft\n", ".. ... ...\n", "172 Where in the World Is Carmen Sandiego? Broderbund\n", "173 Who Wants to Be a Millionaire? Disney Interactive Studios\n", "174 Wing Commander 3: Heart of the Tiger Electronic Arts\n", "175 World of Warcraft Blizzard Entertainment\n", "176 Zoo Tycoon Blue Fang Games\n", "\n", "[177 rows x 2 columns]" ] }, "execution_count": 62, "metadata": {}, "output_type": "execute_result" } ], "source": [ "dataframe2" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "**Karena dua dataset memiliki satu kolom yang sama yaitu kolom \"Name\", maka dapat digabung berdasarkan kolom \"Name\" tersebut**" ] }, { "cell_type": "code", "execution_count": 65, "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
NameSalesSeriesReleaseGenreDeveloperPublisher
07 Days to Die2.07 Days2016-06-01Survival horrorThe Fun PimpsThe Fun Pimps
1Age of Empires3.0Age of Empires1997-10-01Real-time strategyEnsemble StudiosMicrosoft
2Age of Empires II: The Age of Kings2.0Age of Empires1999-09-01Real-time strategyEnsemble StudiosMicrosoft
3Age of Empires III2.0Age of Empires2005-10-01Real-time strategyEnsemble StudiosMicrosoft
4Age of Mythology1.0Age of Empires2002-10-01Real-time strategyEnsemble StudiosMicrosoft
........................
176Where in the World Is Carmen Sandiego?4.0Carmen Sandiego1985-06-01EducationalBroderbundBroderbund
177Who Wants to Be a Millionaire?1.0NaN1999-11-01Trivia gameJellyvisionDisney Interactive Studios
178Wing Commander 3: Heart of the Tiger1.0Wing Commander1994-12-01Space combat simulationOrigin SystemsElectronic Arts
179World of Warcraft14.0Warcraft2004-11-01MMORPGBlizzard EntertainmentBlizzard Entertainment
180Zoo Tycoon1.0Zoo Tycoon2001-10-01Business simulationMicrosoftBlue Fang Games
\n", "

181 rows × 7 columns

\n", "
" ], "text/plain": [ " Name Sales Series \\\n", "0 7 Days to Die 2.0 7 Days \n", "1 Age of Empires 3.0 Age of Empires \n", "2 Age of Empires II: The Age of Kings 2.0 Age of Empires \n", "3 Age of Empires III 2.0 Age of Empires \n", "4 Age of Mythology 1.0 Age of Empires \n", ".. ... ... ... \n", "176 Where in the World Is Carmen Sandiego? 4.0 Carmen Sandiego \n", "177 Who Wants to Be a Millionaire? 1.0 NaN \n", "178 Wing Commander 3: Heart of the Tiger 1.0 Wing Commander \n", "179 World of Warcraft 14.0 Warcraft \n", "180 Zoo Tycoon 1.0 Zoo Tycoon \n", "\n", " Release Genre Developer \\\n", "0 2016-06-01 Survival horror The Fun Pimps \n", "1 1997-10-01 Real-time strategy Ensemble Studios \n", "2 1999-09-01 Real-time strategy Ensemble Studios \n", "3 2005-10-01 Real-time strategy Ensemble Studios \n", "4 2002-10-01 Real-time strategy Ensemble Studios \n", ".. ... ... ... \n", "176 1985-06-01 Educational Broderbund \n", "177 1999-11-01 Trivia game Jellyvision \n", "178 1994-12-01 Space combat simulation Origin Systems \n", "179 2004-11-01 MMORPG Blizzard Entertainment \n", "180 2001-10-01 Business simulation Microsoft \n", "\n", " Publisher \n", "0 The Fun Pimps \n", "1 Microsoft \n", "2 Microsoft \n", "3 Microsoft \n", "4 Microsoft \n", ".. ... \n", "176 Broderbund \n", "177 Disney Interactive Studios \n", "178 Electronic Arts \n", "179 Blizzard Entertainment \n", "180 Blue Fang Games \n", "\n", "[181 rows x 7 columns]" ] }, "execution_count": 65, "metadata": {}, "output_type": "execute_result" } ], "source": [ "dataframe.merge(dataframe2,on='Name')" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Plots and Data Visualizations\n", "\n", "Panda memudahkan dalam pembuatan plot dan visualisasi data. Kita dapat membuat plot sederhana dengan menambahkan .plot() ke objek DataFrame yang memiliki data numerik yang sesuai." ] }, { "cell_type": "code", "execution_count": 17, "metadata": { "scrolled": true }, "outputs": [ { "data": { "text/plain": [ "" ] }, "execution_count": 17, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "dataframe['Publisher'].value_counts()[:10].plot(kind='bar', title='Game Sales:\\nMost Frequent \"Publisher\"')" ] }, { "cell_type": "code", "execution_count": 18, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "" ] }, "execution_count": 18, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "dataframe['Publisher'].value_counts()[:10].plot(kind='pie', title='Game Sales:\\nMost Frequent \"Publisher\"')" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Write CSV File\n", "\n", "Untuk mengeluarkan file CSV baru, dapat menggunakan method .to_csv diikuti dengan nama file dalam tanda kutip. Sedangkan untuk excel dapat menggunakan .to_excel" ] }, { "cell_type": "code", "execution_count": 20, "metadata": {}, "outputs": [], "source": [ "dataframe.to_csv(\"newGameSales.csv\", encoding='utf-8', index=False)" ] } ], "metadata": { "kernelspec": { "display_name": "Python 3", "language": "python", "name": "python3" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 3 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", "version": "3.8.5" } }, "nbformat": 4, "nbformat_minor": 4 }