{ "cells": [ { "cell_type": "markdown", "metadata": { "papermill": { "duration": 0.011532, "end_time": "2020-10-01T01:25:33.370672", "exception": false, "start_time": "2020-10-01T01:25:33.359140", "status": "completed" }, "tags": [] }, "source": [ "# Introduction\n", "\n", "Oftentimes data will come to us with column names, index names, or other naming conventions that we are not satisfied with. In that case, you'll learn how to use pandas functions to change the names of the offending entries to something better.\n", "\n", "You'll also explore how to combine data from multiple DataFrames and/or Series.\n", "\n", "**To start the exercise for this topic, please click [here](https://www.kaggle.com/kernels/fork/638064).**\n", "\n", "# Renaming\n", "\n", "The first function we'll introduce here is `rename()`, which lets you change index names and/or column names. For example, to change the `points` column in our dataset to `score`, we would do:" ] }, { "cell_type": "code", "execution_count": 1, "metadata": { "_kg_hide-input": true, "execution": { "iopub.execute_input": "2020-10-01T01:25:33.406785Z", "iopub.status.busy": "2020-10-01T01:25:33.405704Z", "iopub.status.idle": "2020-10-01T01:25:34.484737Z", "shell.execute_reply": "2020-10-01T01:25:34.485436Z" }, "papermill": { "duration": 1.10373, "end_time": "2020-10-01T01:25:34.485656", "exception": false, "start_time": "2020-10-01T01:25:33.381926", "status": "completed" }, "tags": [] }, "outputs": [], "source": [ "\n", "import pandas as pd\n", "pd.set_option('max_rows', 5)\n", "reviews = pd.read_csv(\"../input/wine-reviews/winemag-data-130k-v2.csv\", index_col=0)" ] }, { "cell_type": "code", "execution_count": 2, "metadata": { "collapsed": true, "execution": { "iopub.execute_input": "2020-10-01T01:25:34.512675Z", "iopub.status.busy": "2020-10-01T01:25:34.511845Z", "iopub.status.idle": "2020-10-01T01:25:34.568444Z", "shell.execute_reply": "2020-10-01T01:25:34.569096Z" }, "jupyter": { "outputs_hidden": true }, "papermill": { "duration": 0.073222, "end_time": "2020-10-01T01:25:34.569312", "exception": false, "start_time": "2020-10-01T01:25:34.496090", "status": "completed" }, "tags": [] }, "outputs": [ { "data": { "text/html": [ "
\n", " | country | \n", "description | \n", "designation | \n", "score | \n", "price | \n", "province | \n", "region_1 | \n", "region_2 | \n", "taster_name | \n", "taster_twitter_handle | \n", "title | \n", "variety | \n", "winery | \n", "
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
0 | \n", "Italy | \n", "Aromas include tropical fruit, broom, brimston... | \n", "Vulkà Bianco | \n", "87 | \n", "NaN | \n", "Sicily & Sardinia | \n", "Etna | \n", "NaN | \n", "Kerin O’Keefe | \n", "@kerinokeefe | \n", "Nicosia 2013 Vulkà Bianco (Etna) | \n", "White Blend | \n", "Nicosia | \n", "
1 | \n", "Portugal | \n", "This is ripe and fruity, a wine that is smooth... | \n", "Avidagos | \n", "87 | \n", "15.0 | \n", "Douro | \n", "NaN | \n", "NaN | \n", "Roger Voss | \n", "@vossroger | \n", "Quinta dos Avidagos 2011 Avidagos Red (Douro) | \n", "Portuguese Red | \n", "Quinta dos Avidagos | \n", "
... | \n", "... | \n", "... | \n", "... | \n", "... | \n", "... | \n", "... | \n", "... | \n", "... | \n", "... | \n", "... | \n", "... | \n", "... | \n", "... | \n", "
129969 | \n", "France | \n", "A dry style of Pinot Gris, this is crisp with ... | \n", "NaN | \n", "90 | \n", "32.0 | \n", "Alsace | \n", "Alsace | \n", "NaN | \n", "Roger Voss | \n", "@vossroger | \n", "Domaine Marcel Deiss 2012 Pinot Gris (Alsace) | \n", "Pinot Gris | \n", "Domaine Marcel Deiss | \n", "
129970 | \n", "France | \n", "Big, rich and off-dry, this is powered by inte... | \n", "Lieu-dit Harth Cuvée Caroline | \n", "90 | \n", "21.0 | \n", "Alsace | \n", "Alsace | \n", "NaN | \n", "Roger Voss | \n", "@vossroger | \n", "Domaine Schoffit 2012 Lieu-dit Harth Cuvée Car... | \n", "Gewürztraminer | \n", "Domaine Schoffit | \n", "
129971 rows × 13 columns
\n", "\n", " | country | \n", "description | \n", "designation | \n", "points | \n", "price | \n", "province | \n", "region_1 | \n", "region_2 | \n", "taster_name | \n", "taster_twitter_handle | \n", "title | \n", "variety | \n", "winery | \n", "
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
firstEntry | \n", "Italy | \n", "Aromas include tropical fruit, broom, brimston... | \n", "Vulkà Bianco | \n", "87 | \n", "NaN | \n", "Sicily & Sardinia | \n", "Etna | \n", "NaN | \n", "Kerin O’Keefe | \n", "@kerinokeefe | \n", "Nicosia 2013 Vulkà Bianco (Etna) | \n", "White Blend | \n", "Nicosia | \n", "
secondEntry | \n", "Portugal | \n", "This is ripe and fruity, a wine that is smooth... | \n", "Avidagos | \n", "87 | \n", "15.0 | \n", "Douro | \n", "NaN | \n", "NaN | \n", "Roger Voss | \n", "@vossroger | \n", "Quinta dos Avidagos 2011 Avidagos Red (Douro) | \n", "Portuguese Red | \n", "Quinta dos Avidagos | \n", "
... | \n", "... | \n", "... | \n", "... | \n", "... | \n", "... | \n", "... | \n", "... | \n", "... | \n", "... | \n", "... | \n", "... | \n", "... | \n", "... | \n", "
129969 | \n", "France | \n", "A dry style of Pinot Gris, this is crisp with ... | \n", "NaN | \n", "90 | \n", "32.0 | \n", "Alsace | \n", "Alsace | \n", "NaN | \n", "Roger Voss | \n", "@vossroger | \n", "Domaine Marcel Deiss 2012 Pinot Gris (Alsace) | \n", "Pinot Gris | \n", "Domaine Marcel Deiss | \n", "
129970 | \n", "France | \n", "Big, rich and off-dry, this is powered by inte... | \n", "Lieu-dit Harth Cuvée Caroline | \n", "90 | \n", "21.0 | \n", "Alsace | \n", "Alsace | \n", "NaN | \n", "Roger Voss | \n", "@vossroger | \n", "Domaine Schoffit 2012 Lieu-dit Harth Cuvée Car... | \n", "Gewürztraminer | \n", "Domaine Schoffit | \n", "
129971 rows × 13 columns
\n", "fields | \n", "country | \n", "description | \n", "designation | \n", "points | \n", "price | \n", "province | \n", "region_1 | \n", "region_2 | \n", "taster_name | \n", "taster_twitter_handle | \n", "title | \n", "variety | \n", "winery | \n", "
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
wines | \n", "\n", " | \n", " | \n", " | \n", " | \n", " | \n", " | \n", " | \n", " | \n", " | \n", " | \n", " | \n", " | \n", " |
0 | \n", "Italy | \n", "Aromas include tropical fruit, broom, brimston... | \n", "Vulkà Bianco | \n", "87 | \n", "NaN | \n", "Sicily & Sardinia | \n", "Etna | \n", "NaN | \n", "Kerin O’Keefe | \n", "@kerinokeefe | \n", "Nicosia 2013 Vulkà Bianco (Etna) | \n", "White Blend | \n", "Nicosia | \n", "
1 | \n", "Portugal | \n", "This is ripe and fruity, a wine that is smooth... | \n", "Avidagos | \n", "87 | \n", "15.0 | \n", "Douro | \n", "NaN | \n", "NaN | \n", "Roger Voss | \n", "@vossroger | \n", "Quinta dos Avidagos 2011 Avidagos Red (Douro) | \n", "Portuguese Red | \n", "Quinta dos Avidagos | \n", "
... | \n", "... | \n", "... | \n", "... | \n", "... | \n", "... | \n", "... | \n", "... | \n", "... | \n", "... | \n", "... | \n", "... | \n", "... | \n", "... | \n", "
129969 | \n", "France | \n", "A dry style of Pinot Gris, this is crisp with ... | \n", "NaN | \n", "90 | \n", "32.0 | \n", "Alsace | \n", "Alsace | \n", "NaN | \n", "Roger Voss | \n", "@vossroger | \n", "Domaine Marcel Deiss 2012 Pinot Gris (Alsace) | \n", "Pinot Gris | \n", "Domaine Marcel Deiss | \n", "
129970 | \n", "France | \n", "Big, rich and off-dry, this is powered by inte... | \n", "Lieu-dit Harth Cuvée Caroline | \n", "90 | \n", "21.0 | \n", "Alsace | \n", "Alsace | \n", "NaN | \n", "Roger Voss | \n", "@vossroger | \n", "Domaine Schoffit 2012 Lieu-dit Harth Cuvée Car... | \n", "Gewürztraminer | \n", "Domaine Schoffit | \n", "
129971 rows × 13 columns
\n", "\n", " | video_id | \n", "trending_date | \n", "title | \n", "channel_title | \n", "category_id | \n", "publish_time | \n", "tags | \n", "views | \n", "likes | \n", "dislikes | \n", "comment_count | \n", "thumbnail_link | \n", "comments_disabled | \n", "ratings_disabled | \n", "video_error_or_removed | \n", "description | \n", "
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
0 | \n", "n1WpP7iowLc | \n", "17.14.11 | \n", "Eminem - Walk On Water (Audio) ft. Beyoncé | \n", "EminemVEVO | \n", "10 | \n", "2017-11-10T17:00:03.000Z | \n", "Eminem|\"Walk\"|\"On\"|\"Water\"|\"Aftermath/Shady/In... | \n", "17158579 | \n", "787425 | \n", "43420 | \n", "125882 | \n", "https://i.ytimg.com/vi/n1WpP7iowLc/default.jpg | \n", "False | \n", "False | \n", "False | \n", "Eminem's new track Walk on Water ft. Beyoncé i... | \n", "
1 | \n", "0dBIkQ4Mz1M | \n", "17.14.11 | \n", "PLUSH - Bad Unboxing Fan Mail | \n", "iDubbbzTV | \n", "23 | \n", "2017-11-13T17:00:00.000Z | \n", "plush|\"bad unboxing\"|\"unboxing\"|\"fan mail\"|\"id... | \n", "1014651 | \n", "127794 | \n", "1688 | \n", "13030 | \n", "https://i.ytimg.com/vi/0dBIkQ4Mz1M/default.jpg | \n", "False | \n", "False | \n", "False | \n", "STill got a lot of packages. Probably will las... | \n", "
... | \n", "... | \n", "... | \n", "... | \n", "... | \n", "... | \n", "... | \n", "... | \n", "... | \n", "... | \n", "... | \n", "... | \n", "... | \n", "... | \n", "... | \n", "... | \n", "... | \n", "
38914 | \n", "-DRsfNObKIQ | \n", "18.14.06 | \n", "Eleni Foureira - Fuego - Cyprus - LIVE - First... | \n", "Eurovision Song Contest | \n", "24 | \n", "2018-05-08T20:32:32.000Z | \n", "Eurovision Song Contest|\"2018\"|\"Lisbon\"|\"Cypru... | \n", "14317515 | \n", "151870 | \n", "45875 | \n", "26766 | \n", "https://i.ytimg.com/vi/-DRsfNObKIQ/default.jpg | \n", "False | \n", "False | \n", "False | \n", "Eleni Foureira represented Cyprus at the first... | \n", "
38915 | \n", "4YFo4bdMO8Q | \n", "18.14.06 | \n", "KYLE - Ikuyo feat. 2 Chainz & Sophia Black [A... | \n", "SuperDuperKyle | \n", "10 | \n", "2018-05-11T04:06:35.000Z | \n", "Kyle|\"SuperDuperKyle\"|\"Ikuyo\"|\"2 Chainz\"|\"Soph... | \n", "607552 | \n", "18271 | \n", "274 | \n", "1423 | \n", "https://i.ytimg.com/vi/4YFo4bdMO8Q/default.jpg | \n", "False | \n", "False | \n", "False | \n", "Debut album 'Light of Mine' out now: http://ky... | \n", "
79797 rows × 16 columns
\n", "\n", " | \n", " | video_id_CAN | \n", "channel_title_CAN | \n", "category_id_CAN | \n", "publish_time_CAN | \n", "tags_CAN | \n", "views_CAN | \n", "likes_CAN | \n", "dislikes_CAN | \n", "comment_count_CAN | \n", "thumbnail_link_CAN | \n", "... | \n", "tags_UK | \n", "views_UK | \n", "likes_UK | \n", "dislikes_UK | \n", "comment_count_UK | \n", "thumbnail_link_UK | \n", "comments_disabled_UK | \n", "ratings_disabled_UK | \n", "video_error_or_removed_UK | \n", "description_UK | \n", "
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
title | \n", "trending_date | \n", "\n", " | \n", " | \n", " | \n", " | \n", " | \n", " | \n", " | \n", " | \n", " | \n", " | \n", " | \n", " | \n", " | \n", " | \n", " | \n", " | \n", " | \n", " | \n", " | \n", " | \n", " |
!! THIS VIDEO IS NOTHING BUT PAIN !! | Getting Over It - Part 7 | \n", "18.04.01 | \n", "PNn8sECd7io | \n", "Markiplier | \n", "20 | \n", "2018-01-03T19:33:53.000Z | \n", "getting over it|\"markiplier\"|\"funny moments\"|\"... | \n", "835930 | \n", "47058 | \n", "1023 | \n", "8250 | \n", "https://i.ytimg.com/vi/PNn8sECd7io/default.jpg | \n", "... | \n", "NaN | \n", "NaN | \n", "NaN | \n", "NaN | \n", "NaN | \n", "NaN | \n", "NaN | \n", "NaN | \n", "NaN | \n", "NaN | \n", "
#1 Fortnite World Rank - 2,323 Solo Wins! | \n", "18.09.03 | \n", "DvPW66IFhMI | \n", "AlexRamiGaming | \n", "20 | \n", "2018-03-09T07:15:52.000Z | \n", "PS4 Battle Royale|\"PS4 Pro Battle Royale\"|\"Bat... | \n", "212838 | \n", "5199 | \n", "542 | \n", "11 | \n", "https://i.ytimg.com/vi/DvPW66IFhMI/default.jpg | \n", "... | \n", "NaN | \n", "NaN | \n", "NaN | \n", "NaN | \n", "NaN | \n", "NaN | \n", "NaN | \n", "NaN | \n", "NaN | \n", "NaN | \n", "
... | \n", "... | \n", "... | \n", "... | \n", "... | \n", "... | \n", "... | \n", "... | \n", "... | \n", "... | \n", "... | \n", "... | \n", "... | \n", "... | \n", "... | \n", "... | \n", "... | \n", "... | \n", "... | \n", "... | \n", "... | \n", "... | \n", "... | \n", "
🚨 BREAKING NEWS 🔴 Raja Live all Slot Channels Welcome 🎰 | \n", "18.07.05 | \n", "Wt9Gkpmbt44 | \n", "TheBigJackpot | \n", "24 | \n", "2018-05-07T06:58:59.000Z | \n", "Slot Machine|\"win\"|\"Gambling\"|\"Big Win\"|\"raja\"... | \n", "28973 | \n", "2167 | \n", "175 | \n", "10 | \n", "https://i.ytimg.com/vi/Wt9Gkpmbt44/default.jpg | \n", "... | \n", "NaN | \n", "NaN | \n", "NaN | \n", "NaN | \n", "NaN | \n", "NaN | \n", "NaN | \n", "NaN | \n", "NaN | \n", "NaN | \n", "
🚨Active Shooter at YouTube Headquarters - LIVE BREAKING NEWS COVERAGE | \n", "18.04.04 | \n", "Az72jrKbANA | \n", "Right Side Broadcasting Network | \n", "25 | \n", "2018-04-03T23:12:37.000Z | \n", "YouTube shooter|\"YouTube active shooter\"|\"acti... | \n", "103513 | \n", "1722 | \n", "181 | \n", "76 | \n", "https://i.ytimg.com/vi/Az72jrKbANA/default.jpg | \n", "... | \n", "NaN | \n", "NaN | \n", "NaN | \n", "NaN | \n", "NaN | \n", "NaN | \n", "NaN | \n", "NaN | \n", "NaN | \n", "NaN | \n", "
40900 rows × 28 columns
\n", "