{
 "cells": [
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": [
    "#Using Dict of ndarrays and lists to create a DataFrame\n",
    "information = {\n",
    "               'Brand': ['Mercedes', 'Audi', 'BMW', 'Volkswagen', 'Chevrolet'], \n",
    "               'Founded': ['1926', '1969', '1916', '1937', '1911']\n",
    "               }"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": [
    "information"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "#Heres the Notes"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": [
    "import pandas as pd\n",
    "pandas_dataframe = pd.DataFrame(information)\n",
    "print(pandas_dataframe)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": [
    "#Using lists to create a DataFrame\n",
    "li = [[122, 244, 366, 488, 510, 612],\n",
    "      [132, 231, 312, 456, 564, 645]]\n",
    "pandas_dataframe = pd.DataFrame(li)\n",
    "print(pandas_dataframe)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 8,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>State</th>\n",
       "      <th>Capital</th>\n",
       "      <th>Literacy %</th>\n",
       "      <th>Avg High Temp(c)</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>Telangana</td>\n",
       "      <td>Hyderabad</td>\n",
       "      <td>89</td>\n",
       "      <td>33</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>Maharashtra</td>\n",
       "      <td>Mumbai</td>\n",
       "      <td>77</td>\n",
       "      <td>30</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>Karnataka</td>\n",
       "      <td>Bengaluru</td>\n",
       "      <td>82</td>\n",
       "      <td>29</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>Kerala</td>\n",
       "      <td>Trivandrum</td>\n",
       "      <td>97</td>\n",
       "      <td>31</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>Tamil Nadu</td>\n",
       "      <td>Chennai</td>\n",
       "      <td>85</td>\n",
       "      <td>32</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "         State     Capital  Literacy %  Avg High Temp(c)\n",
       "0    Telangana   Hyderabad          89                33\n",
       "1  Maharashtra      Mumbai          77                30\n",
       "2    Karnataka   Bengaluru          82                29\n",
       "3       Kerala  Trivandrum          97                31\n",
       "4   Tamil Nadu     Chennai          85                32"
      ]
     },
     "execution_count": 8,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "import pandas as pd\n",
    "df = pd.DataFrame(\n",
    "    {\n",
    "    \"State\": ['Telangana', 'Maharashtra', 'Karnataka', 'Kerala', 'Tamil Nadu'],\n",
    "    \"Capital\": ['Hyderabad', 'Mumbai', 'Bengaluru', 'Trivandrum', 'Chennai'],\n",
    "    \"Literacy %\": [89, 77, 82, 97,85],\n",
    "    \"Avg High Temp(c)\": [33, 30, 29, 31, 32 ]\n",
    "    })\n",
    "df"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 10,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>Literacy %</th>\n",
       "      <th>Avg High Temp(c)</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>89</td>\n",
       "      <td>33</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>77</td>\n",
       "      <td>30</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>82</td>\n",
       "      <td>29</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "   Literacy %  Avg High Temp(c)\n",
       "0          89                33\n",
       "1          77                30\n",
       "2          82                29"
      ]
     },
     "execution_count": 10,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "df.iloc[[0,1,2],[2,3]]"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 12,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>Literacy %</th>\n",
       "      <th>Avg High Temp(c)</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>89</td>\n",
       "      <td>33</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>77</td>\n",
       "      <td>30</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "   Literacy %  Avg High Temp(c)\n",
       "0          89                33\n",
       "1          77                30"
      ]
     },
     "execution_count": 12,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "df.iloc[0:2,2:4]"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 13,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "82"
      ]
     },
     "execution_count": 13,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "df.iloc[2,2]"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 17,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "'Mumbai'"
      ]
     },
     "execution_count": 17,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "df.loc[1,'Capital']"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 18,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>Literacy %</th>\n",
       "      <th>Avg High Temp(c)</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>89</td>\n",
       "      <td>33</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>77</td>\n",
       "      <td>30</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>82</td>\n",
       "      <td>29</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "   Literacy %  Avg High Temp(c)\n",
       "0          89                33\n",
       "1          77                30\n",
       "2          82                29"
      ]
     },
     "execution_count": 18,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "df.loc[[0,1,2],['Literacy %','Avg High Temp(c)']]"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 20,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>State</th>\n",
       "      <th>Capital</th>\n",
       "      <th>Literacy %</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>Kerala</td>\n",
       "      <td>Trivandrum</td>\n",
       "      <td>97</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "    State     Capital  Literacy %\n",
       "3  Kerala  Trivandrum          97"
      ]
     },
     "execution_count": 20,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "df.loc[(df['Literacy %'] > 90), ['State', 'Capital','Literacy %']] \n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": [
    "# select rows with id column between 80 and 90, and just return 'State', 'Capital','Literacy %' columns\n",
    "df.loc[(df['Literacy %'] > 80) & (df['Literacy %'] <= 90), ['State', 'Capital','Literacy %']] \n",
    "\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": [
    "# Change the Avg High Temp(c) of all rows with an 'Literacy %' greater than 85 to 40\n",
    "df.loc[df['Literacy %'] > 85, \"Avg High Temp(c)\"] = 40\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": [
    "df"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": [
    "#rename(columns = {oldname:newname,...})\n",
    "df.rename(columns = {'Literacy %':'Literacy percentage',\n",
    "                     'Avg High Temp(c)':'Avg Temp'},\n",
    "                      inplace= True)\n",
    "print(df.head(3))\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": [
    "#Importing data from CSV to DataFrame\n",
    "df1 = pd.read_csv(\"pokemon.csv\")"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": [
    "df1"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": [
    "df1.head()#by default head gives first five records"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": [
    "df1.head(10)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": [
    "df1.tail()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": [
    "df1.tail(10)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": [
    "#information or metadata\n",
    "df1.info()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": [
    "#statistcal information\n",
    "df1.describe()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": [
    "df1.describe().T"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "#Slicing records: It is possible to extract data of a particular column, \n",
    "by using the column name. \n",
    "For example, to extract the ‘Capital’\n",
    " column'''"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": [
    "df.head(2)\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": [
    "import pandas as pd\n",
    "df = pd.DataFrame(\n",
    "    {\n",
    "    \"State\": ['Telangana', 'Maharashtra', 'Karnataka', 'Kerala', 'Tamil Nadu'],\n",
    "    \"Capital\": ['Hyderabad', 'Mumbai', 'Bengaluru', 'Trivandrum', 'Chennai'],\n",
    "    \"Literacy %\": [89, 77, 82, 97,85],\n",
    "    \"Avg High Temp(c)\": [33, 30, 29, 31, 32 ]\n",
    "    })\n",
    "print(df)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": [
    "#2,3 rows and 1,2 columns\n",
    "df.iloc[2:4,1:3]"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": [
    "df_capital  =  df['Capital']\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": [
    "type(df_capital)\n",
    "print(df_capital)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": [
    "df_cap_tem = df[['Capital',\"Avg High Temp(c)\"]]\n",
    "print(type(df_cap_tem))\n",
    "print(df_cap_tem)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": [
    "df.iloc[[0,1,2],[2,3]]"
   ]
  },
  {
   "attachments": {
    "ilocloc.png": {
     "image/png": "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"
    }
   },
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "![ilocloc.png](attachment:ilocloc.png)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "It is also possible to slice rows. Multiple rows can be selected using “:” operator.\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": [
    "df[:]"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": [
    "df[1:4]"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": [
    "df.iloc[1:4,2:3]"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": [
    "print(df[:])\n",
    "print(df.iloc[0])\n",
    "print(df.iloc[-1])"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": [
    "# Single selections using iloc and DataFrame\n",
    "# Rows:\n",
    "\n",
    "df.iloc[1]\n",
    "df.iloc[-1] # last row of data frame \n",
    "\n",
    "\n",
    "print(df.iloc[:,0:2]) # all rows with first column of data frame \n",
    "print(df.iloc[:,1]) # second column of data frame\n",
    "print(df.iloc[:,-1]) # last column of data frame (Avg High Temp(c))\n",
    "\n",
    "\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": [
    "# make the passed column as index instead of 0, 1, 2, 3.... \n",
    "df_pmn = pd.read_csv(\"pokemon.csv\") \n",
    "df_pmn.head()\n",
    "\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": [
    "df_pmn.set_index(\"Type 2\", inplace=True)\n",
    "df_pmn.head(5)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": [
    "df_pmn.loc['Poison', ['Total','Speed']]"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": [
    "df_pmn.loc['Poison', 'Total':'Speed']"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": [
    "# Change the index to be based on the 'id' column\n",
    "df_pmn.set_index('#', inplace=True)\n",
    "print(df_pmn.head(2))\n",
    "# select the row with 'id' = 487\n",
    "df_pmn.loc[487]\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": [
    "#removing index specification\n",
    "df_pmn.reset_index(inplace=True)\n",
    "df_pmn.loc[487]\n",
    "df_pmn.head()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": [
    "\n",
    "df_pmn.iloc[487]"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": [
    "df_pmn.head(2)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": [
    "#Boolean / Logical indexing using .loc\n",
    "df_pmn.loc[df_pmn[\"Speed\"] >=60,['Name','Speed','Defense']]"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": [
    "df_pmn[\"Speed\"] >=60 "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": [
    "df_pmn.iloc[0]"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": [
    "data = pd.read_csv(\"uk-500.csv\")\n",
    "data.columns"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": [
    "data.head()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": [
    "# Select rows with first name Antonio, and all columns between 'city' and 'email'\n",
    "data.loc[data['first_name'] == 'Antonio', 'city':'email']\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": [
    "data.loc[data['first_name'] == 'Antonio', ['first_name','city','email']]"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": [
    "# Select rows where the email column ends with 'hotmail.com', include all columns\n",
    "data.loc[data['email'].str.endswith(\"hotmail.com\")] "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": [
    "# Select rows with last_name equal to some values, all columns\n",
    "data.loc[data['first_name'].isin(['France','Tyisha','Eric'])] "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": [
    "# Select rows with first name Antonio AND gmail as email addresses\n",
    "data.loc[data['email'].str.endswith(\"gmail.com\") & (data['first_name'] == 'Antonio')] \n",
    " "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": []
  }
 ],
 "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.8"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 4
}
