<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Charles De Barros</title>
    <description>The latest articles on DEV Community by Charles De Barros (@charlesdebarros).</description>
    <link>https://dev.to/charlesdebarros</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F135802%2F626fa475-03e3-4a25-bafc-b2162b1eb45f.png</url>
      <title>DEV Community: Charles De Barros</title>
      <link>https://dev.to/charlesdebarros</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/charlesdebarros"/>
    <language>en</language>
    <item>
      <title>Back to Basics - Pandas #02</title>
      <dc:creator>Charles De Barros</dc:creator>
      <pubDate>Tue, 16 Apr 2024 09:26:57 +0000</pubDate>
      <link>https://dev.to/charlesdebarros/back-to-basics-pandas-02-a7j</link>
      <guid>https://dev.to/charlesdebarros/back-to-basics-pandas-02-a7j</guid>
      <description>&lt;h2&gt;
  
  
  The power of the 'locs'
&lt;/h2&gt;

&lt;p&gt;One of the most common tasks we perform with Pandas is data indexing and selection. We do that pretty much daily.&lt;/p&gt;

&lt;p&gt;Let's delve into the world of &lt;strong&gt;Pandas&lt;/strong&gt; and explore the differences between &lt;code&gt;loc()&lt;/code&gt; and &lt;code&gt;iloc()&lt;/code&gt; operators. These two methods are essential for data manipulation in Python, especially when working with &lt;strong&gt;DataFrames&lt;/strong&gt;. Knowing how to apply those two well is the &lt;strong&gt;key&lt;/strong&gt; to filtering a DataFrame efficiently. Did you get it? &lt;strong&gt;&lt;em&gt;loc&lt;/em&gt;&lt;/strong&gt; and &lt;strong&gt;&lt;em&gt;key&lt;/em&gt;&lt;/strong&gt;? Nevermind! Let's jump in.&lt;/p&gt;

&lt;h2&gt;
  
  
  Selecting with &lt;code&gt;loc()&lt;/code&gt; and &lt;code&gt;iloc()&lt;/code&gt;
&lt;/h2&gt;

&lt;h3&gt;
  
  
  1. &lt;code&gt;loc()&lt;/code&gt; - Label-Based Data Selection
&lt;/h3&gt;

&lt;p&gt;The &lt;code&gt;loc()&lt;/code&gt; function is a label-based data selection method. It allows us to select rows or columns based on their &lt;strong&gt;labels&lt;/strong&gt; (i.e., row or column names) but may also be used with a boolean array with the same length as the row axis. Some key points about &lt;code&gt;loc()&lt;/code&gt;:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;We pass the &lt;strong&gt;name&lt;/strong&gt; of the row or column we want to select.&lt;/li&gt;
&lt;li&gt;It includes the &lt;strong&gt;last element&lt;/strong&gt; of the range specified.&lt;/li&gt;
&lt;li&gt;It can accept &lt;strong&gt;boolean data&lt;/strong&gt; for filtering.&lt;/li&gt;
&lt;li&gt;It's useful for selecting data based on specific conditions.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  2. &lt;code&gt;iloc()&lt;/code&gt; - Integer-Based Data Selection
&lt;/h3&gt;

&lt;p&gt;The &lt;code&gt;iloc()&lt;/code&gt; function, on the other hand, is an integer-based data selection method. It uses &lt;strong&gt;integer positions&lt;/strong&gt; to access data but may also be used with a boolean array. Here are some aspects of &lt;code&gt;iloc()&lt;/code&gt; to keep in mind:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;We specify the &lt;strong&gt;integer index&lt;/strong&gt; of the row or column we want to select.&lt;/li&gt;
&lt;li&gt;It &lt;strong&gt;excludes&lt;/strong&gt; the endpoint when slicing (similar to the Python slicing convention).&lt;/li&gt;
&lt;li&gt;Like &lt;code&gt;loc[]&lt;/code&gt;, it also accepts &lt;strong&gt;boolean data&lt;/strong&gt; for filtering.&lt;/li&gt;
&lt;li&gt;It's ideal for accessing data by position.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Examples
&lt;/h2&gt;

&lt;p&gt;Let's demonstrate these concepts using a sample DataFrame containing information about cars:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;pandas&lt;/span&gt; &lt;span class="k"&gt;as&lt;/span&gt; &lt;span class="n"&gt;pd&lt;/span&gt;
&lt;span class="n"&gt;data&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;pd&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nc"&gt;DataFrame&lt;/span&gt;&lt;span class="p"&gt;({&lt;/span&gt;
    &lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;Brand&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;
        &lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;Ford&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;Hyundai&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;VW&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;Vauxhall&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;Ford&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; 
        &lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;Hyundai&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;Renault&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;VW&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;Ford
    &lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="p"&gt;],&lt;/span&gt;
    &lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;Year&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;
        &lt;span class="mi"&gt;2012&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;2014&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;2011&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;2015&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;2012&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; 
        &lt;span class="mi"&gt;2016&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;2014&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;2018&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;2019&lt;/span&gt;
    &lt;span class="p"&gt;],&lt;/span&gt;
    &lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;Kms Driven&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;
        &lt;span class="mi"&gt;50000&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;30000&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;60000&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;25000&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;10000&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; 
        &lt;span class="mi"&gt;46000&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;31000&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;15000&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;12000&lt;/span&gt;
    &lt;span class="p"&gt;],&lt;/span&gt;
    &lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;City&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;
        &lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;Manchester&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;London&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;Birmingham&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;London&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;Birmingham&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; 
        &lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;London&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;Birmingham&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;Liverpool&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;Nottingham&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="p"&gt;],&lt;/span&gt;
    &lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;Mileage&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;
        &lt;span class="mi"&gt;28&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;27&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;25&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;26&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;28&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;29&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;24&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;21&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;24&lt;/span&gt;
    &lt;span class="p"&gt;]&lt;/span&gt;
&lt;span class="p"&gt;})&lt;/span&gt;
&lt;span class="c1"&gt;# Displaying the DataFrame
&lt;/span&gt;&lt;span class="n"&gt;data&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Displaying the DataFrame above we get:&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Brand&lt;/th&gt;
&lt;th&gt;Year&lt;/th&gt;
&lt;th&gt;Kms Driven&lt;/th&gt;
&lt;th&gt;City&lt;/th&gt;
&lt;th&gt;Mileage&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Maruti&lt;/td&gt;
&lt;td&gt;2012&lt;/td&gt;
&lt;td&gt;50000&lt;/td&gt;
&lt;td&gt;Manchester&lt;/td&gt;
&lt;td&gt;28&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Hyundai&lt;/td&gt;
&lt;td&gt;2014&lt;/td&gt;
&lt;td&gt;30000&lt;/td&gt;
&lt;td&gt;London&lt;/td&gt;
&lt;td&gt;27&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;VW&lt;/td&gt;
&lt;td&gt;2011&lt;/td&gt;
&lt;td&gt;60000&lt;/td&gt;
&lt;td&gt;Birmingham&lt;/td&gt;
&lt;td&gt;25&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Vauxhall&lt;/td&gt;
&lt;td&gt;2015&lt;/td&gt;
&lt;td&gt;25000&lt;/td&gt;
&lt;td&gt;London&lt;/td&gt;
&lt;td&gt;26&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Ford&lt;/td&gt;
&lt;td&gt;2012&lt;/td&gt;
&lt;td&gt;10000&lt;/td&gt;
&lt;td&gt;Birmingham&lt;/td&gt;
&lt;td&gt;28&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Hyundai&lt;/td&gt;
&lt;td&gt;2016&lt;/td&gt;
&lt;td&gt;46000&lt;/td&gt;
&lt;td&gt;London&lt;/td&gt;
&lt;td&gt;29&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Renault&lt;/td&gt;
&lt;td&gt;2014&lt;/td&gt;
&lt;td&gt;31000&lt;/td&gt;
&lt;td&gt;Birmingham&lt;/td&gt;
&lt;td&gt;24&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;VW&lt;/td&gt;
&lt;td&gt;2018&lt;/td&gt;
&lt;td&gt;15000&lt;/td&gt;
&lt;td&gt;Liverpool&lt;/td&gt;
&lt;td&gt;21&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Ford&lt;/td&gt;
&lt;td&gt;2019&lt;/td&gt;
&lt;td&gt;12000&lt;/td&gt;
&lt;td&gt;Nottingham&lt;/td&gt;
&lt;td&gt;24&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;h3&gt;
  
  
  Example 1: Conditional Selection Data
&lt;/h3&gt;

&lt;p&gt;Let's use &lt;code&gt;loc()&lt;/code&gt; to find Ford cars with a mileage greater than 25:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="nf"&gt;display&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;data&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;loc&lt;/span&gt;&lt;span class="p"&gt;[(&lt;/span&gt;&lt;span class="n"&gt;data&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;Brand&lt;/span&gt; &lt;span class="o"&gt;==&lt;/span&gt; &lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;Ford&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="o"&gt;&amp;amp;&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;data&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;Mileage&lt;/span&gt; &lt;span class="o"&gt;&amp;gt;&lt;/span&gt; &lt;span class="mi"&gt;25&lt;/span&gt;&lt;span class="p"&gt;)])&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Output:&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Brand&lt;/th&gt;
&lt;th&gt;Year&lt;/th&gt;
&lt;th&gt;Kms Driven&lt;/th&gt;
&lt;th&gt;City&lt;/th&gt;
&lt;th&gt;Mileage&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Ford&lt;/td&gt;
&lt;td&gt;2012&lt;/td&gt;
&lt;td&gt;50000&lt;/td&gt;
&lt;td&gt;Manchester&lt;/td&gt;
&lt;td&gt;28&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Ford&lt;/td&gt;
&lt;td&gt;2012&lt;/td&gt;
&lt;td&gt;10000&lt;/td&gt;
&lt;td&gt;Birmingham&lt;/td&gt;
&lt;td&gt;28&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;h3&gt;
  
  
  Example 2: Row Selection using ranges
&lt;/h3&gt;

&lt;p&gt;We'll use &lt;code&gt;iloc()&lt;/code&gt; to extract rows with indices from 2 to 5 (inclusive):&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="nf"&gt;display&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;data&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;iloc&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="mi"&gt;2&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="mi"&gt;6&lt;/span&gt;&lt;span class="p"&gt;])&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Output:&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Brand&lt;/th&gt;
&lt;th&gt;Year&lt;/th&gt;
&lt;th&gt;Kms Driven&lt;/th&gt;
&lt;th&gt;City&lt;/th&gt;
&lt;th&gt;Mileage&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;VW&lt;/td&gt;
&lt;td&gt;2011&lt;/td&gt;
&lt;td&gt;60000&lt;/td&gt;
&lt;td&gt;Birmingham&lt;/td&gt;
&lt;td&gt;25&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Vauxhall&lt;/td&gt;
&lt;td&gt;2015&lt;/td&gt;
&lt;td&gt;25000&lt;/td&gt;
&lt;td&gt;London&lt;/td&gt;
&lt;td&gt;26&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Ford&lt;/td&gt;
&lt;td&gt;2012&lt;/td&gt;
&lt;td&gt;10000&lt;/td&gt;
&lt;td&gt;Birmingham&lt;/td&gt;
&lt;td&gt;28&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Hyundai&lt;/td&gt;
&lt;td&gt;2016&lt;/td&gt;
&lt;td&gt;46000&lt;/td&gt;
&lt;td&gt;London&lt;/td&gt;
&lt;td&gt;29&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;h2&gt;
  
  
  Summary
&lt;/h2&gt;

&lt;p&gt;The Pandas &lt;code&gt;loc&lt;/code&gt; and &lt;code&gt;iloc&lt;/code&gt; are powerful tools for selecting and manipulating data within Pandas DataFrames and Series. Its utility ranges from simple row-and-column selections to more complex operations combined with other Pandas features like &lt;code&gt;groupby&lt;/code&gt;. They can be adapted to work with boolean conditions, thereby offering a flexible approach to data manipulation tasks. Mastering &lt;code&gt;loc&lt;/code&gt; and &lt;code&gt;iloc&lt;/code&gt; will add flexibility to any Data Analyst's toolbox. &lt;/p&gt;

</description>
      <category>python</category>
      <category>pandas</category>
      <category>datascience</category>
      <category>analytics</category>
    </item>
    <item>
      <title>Back to Basics - Python #02</title>
      <dc:creator>Charles De Barros</dc:creator>
      <pubDate>Wed, 10 Apr 2024 14:08:47 +0000</pubDate>
      <link>https://dev.to/charlesdebarros/back-to-basics-python-02-21ip</link>
      <guid>https://dev.to/charlesdebarros/back-to-basics-python-02-21ip</guid>
      <description>&lt;h2&gt;
  
  
  The Numeric data type
&lt;/h2&gt;

&lt;p&gt;There are &lt;strong&gt;eight&lt;/strong&gt; major &lt;em&gt;data types&lt;/em&gt; in Python:&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;th&gt;Type&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Text&lt;/td&gt;
&lt;td&gt;str&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Numeric&lt;/td&gt;
&lt;td&gt;int, float, complex&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Sequence&lt;/td&gt;
&lt;td&gt;list, tuple, range&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Mapping&lt;/td&gt;
&lt;td&gt;dict&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Set&lt;/td&gt;
&lt;td&gt;set, frozenset&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Boolean&lt;/td&gt;
&lt;td&gt;bool&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Binary&lt;/td&gt;
&lt;td&gt;bytes, bytearray, memoryview&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;None&lt;/td&gt;
&lt;td&gt;NoneType&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;&lt;strong&gt;Numeric&lt;/strong&gt; data types are widely used in mathematical, statistical, data science, and machine learning solutions.&lt;/p&gt;

&lt;p&gt;There are &lt;em&gt;three&lt;/em&gt;  distinct numeric types in Python:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;int (integer)&lt;/li&gt;
&lt;li&gt;float&lt;/li&gt;
&lt;li&gt;Complex&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Integers
&lt;/h2&gt;

&lt;p&gt;What is an integer?&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;An integer is a whole number, positive or negative, with &lt;em&gt;no fractional part&lt;/em&gt;, i.e., no decimals, and unlimited length. It includes the &lt;strong&gt;0&lt;/strong&gt; (zero).&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;We can write them down as &lt;code&gt;"...-3, -2, -1, 0, 1, 2, 3..."&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;Python uses the class &lt;code&gt;int&lt;/code&gt; to represent all integer numbers.&lt;/p&gt;

&lt;p&gt;When we define a variable &lt;strong&gt;num&lt;/strong&gt; with a value of &lt;strong&gt;5&lt;/strong&gt;, the variable &lt;strong&gt;num&lt;/strong&gt; does not hold the real integer &lt;strong&gt;5&lt;/strong&gt;. It stores a reference pointing to where the integer &lt;strong&gt;5&lt;/strong&gt; is held in the computer's memory.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;num = y
print(type(num))  # returns the variable num's type
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The output is:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;&amp;lt;class 'int'&amp;gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Note:&lt;/strong&gt; In Python 3, there is effectively no limit to how long an integer value can be. The limit is constrained by the amount of memory your system has. &lt;/p&gt;

&lt;h2&gt;
  
  
  Integer operations
&lt;/h2&gt;

&lt;p&gt;We can perform all standard mathematical operations using Python's integers, including:&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Operation&lt;/th&gt;
&lt;th&gt;Operator&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Addition&lt;/td&gt;
&lt;td&gt;+&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Substraction&lt;/td&gt;
&lt;td&gt;-&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Multiplication&lt;/td&gt;
&lt;td&gt;*&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Division&lt;/td&gt;
&lt;td&gt;/&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Exponentiation&lt;/td&gt;
&lt;td&gt;**&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;For example:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="n"&gt;num_1&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="mi"&gt;10&lt;/span&gt;
&lt;span class="n"&gt;num_2&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="mi"&gt;5&lt;/span&gt;

&lt;span class="n"&gt;c&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;num_1&lt;/span&gt; &lt;span class="o"&gt;+&lt;/span&gt; &lt;span class="n"&gt;num_2&lt;/span&gt;
&lt;span class="nf"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;c&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="nf"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nf"&gt;type&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;c&lt;/span&gt;&lt;span class="p"&gt;))&lt;/span&gt;

&lt;span class="n"&gt;c&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;num_1&lt;/span&gt; &lt;span class="o"&gt;-&lt;/span&gt; &lt;span class="n"&gt;num_2&lt;/span&gt;
&lt;span class="nf"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;c&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="nf"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nf"&gt;type&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;c&lt;/span&gt;&lt;span class="p"&gt;))&lt;/span&gt;

&lt;span class="n"&gt;c&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;num_1&lt;/span&gt; &lt;span class="o"&gt;*&lt;/span&gt; &lt;span class="n"&gt;num_2&lt;/span&gt;
&lt;span class="nf"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;c&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="nf"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nf"&gt;type&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;c&lt;/span&gt;&lt;span class="p"&gt;))&lt;/span&gt;

&lt;span class="n"&gt;c&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;num_1&lt;/span&gt; &lt;span class="o"&gt;/&lt;/span&gt; &lt;span class="n"&gt;num_2&lt;/span&gt;
&lt;span class="nf"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;c&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="nf"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nf"&gt;type&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;c&lt;/span&gt;&lt;span class="p"&gt;))&lt;/span&gt;

&lt;span class="n"&gt;c&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;num_1&lt;/span&gt; &lt;span class="o"&gt;**&lt;/span&gt; &lt;span class="n"&gt;num_2&lt;/span&gt;
&lt;span class="nf"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;c&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="nf"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nf"&gt;type&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;c&lt;/span&gt;&lt;span class="p"&gt;))&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The above calculations will return the following:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="c1"&gt;# Addition
&lt;/span&gt;&lt;span class="mi"&gt;15&lt;/span&gt;
&lt;span class="o"&gt;&amp;lt;&lt;/span&gt;&lt;span class="k"&gt;class&lt;/span&gt; &lt;span class="err"&gt;'&lt;/span&gt;&lt;span class="nc"&gt;int&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;&amp;gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;





&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="c1"&gt;# Subtraction
&lt;/span&gt;&lt;span class="mi"&gt;5&lt;/span&gt;
&lt;span class="o"&gt;&amp;lt;&lt;/span&gt;&lt;span class="k"&gt;class&lt;/span&gt; &lt;span class="err"&gt;'&lt;/span&gt;&lt;span class="nc"&gt;int&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;&amp;gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;





&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="c1"&gt;# Multiplication
&lt;/span&gt;&lt;span class="mi"&gt;50&lt;/span&gt;
&lt;span class="o"&gt;&amp;lt;&lt;/span&gt;&lt;span class="k"&gt;class&lt;/span&gt; &lt;span class="err"&gt;'&lt;/span&gt;&lt;span class="nc"&gt;int&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;&amp;gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;





&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="c1"&gt;# Division
# Note the result of the division is a decimal number. 
# More on that later.
&lt;/span&gt;&lt;span class="mf"&gt;2.0&lt;/span&gt;
&lt;span class="o"&gt;&amp;lt;&lt;/span&gt;&lt;span class="k"&gt;class&lt;/span&gt; &lt;span class="err"&gt;'&lt;/span&gt;&lt;span class="nc"&gt;float&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;&amp;gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;





&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="c1"&gt;# Exponetiation
&lt;/span&gt;&lt;span class="mi"&gt;100000&lt;/span&gt;
&lt;span class="o"&gt;&amp;lt;&lt;/span&gt;&lt;span class="k"&gt;class&lt;/span&gt; &lt;span class="err"&gt;'&lt;/span&gt;&lt;span class="nc"&gt;int&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;&amp;gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  Floats
&lt;/h2&gt;

&lt;p&gt;In addition to integers, consisting of whole numbers without fractions, Python also offers us the &lt;strong&gt;&lt;em&gt;float&lt;/em&gt;&lt;/strong&gt; type.&lt;/p&gt;

&lt;p&gt;What is a float number?&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;A float is a positive or negative number with &lt;em&gt;afractional part&lt;/em&gt;, i.e., decimals, and unlimited length. It includes the &lt;strong&gt;0&lt;/strong&gt; (zero).&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h2&gt;
  
  
  Float numbers precision
&lt;/h2&gt;

&lt;p&gt;Python’s built-in float data type provides up to 15 digits of decimal precision. That is usually enough for common calculations.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="mi"&gt;100&lt;/span&gt; &lt;span class="o"&gt;/&lt;/span&gt; &lt;span class="mi"&gt;30&lt;/span&gt;
&lt;span class="mf"&gt;3.3333333333333335&lt;/span&gt; 
&lt;span class="c1"&gt;# The floor division above returns a float.
# Note the value is rounded to the nearest 15-digit value available.
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The default precision is 6 decimal places. You can set the precision using the &lt;code&gt;round()&lt;/code&gt;:&lt;/p&gt;

&lt;p&gt;For example:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="n"&gt;x&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="mf"&gt;7.78&lt;/span&gt;
&lt;span class="n"&gt;y&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="mf"&gt;3.3&lt;/span&gt;
&lt;span class="n"&gt;result&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;x&lt;/span&gt; &lt;span class="o"&gt;*&lt;/span&gt; &lt;span class="n"&gt;y&lt;/span&gt;  &lt;span class="c1"&gt;# return 25.674
&lt;/span&gt;&lt;span class="nf"&gt;round&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;result&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;2&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; 
&lt;span class="mf"&gt;25.67&lt;/span&gt;   &lt;span class="c1"&gt;# returns 'result' round to two decimals
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  Operations with Floats
&lt;/h2&gt;

&lt;p&gt;Operations with floats follow the same rules as operations with integers. The difference is, for obvious reasons, the presence of decimal points in the numbers used for the calculations.&lt;/p&gt;

&lt;h2&gt;
  
  
  Order of Operations
&lt;/h2&gt;

&lt;p&gt;As in normal mathematical calculations, Python integers and floats follow a defined order when performing operations. The famous PEMDAS:&lt;/p&gt;

&lt;h3&gt;
  
  
  PEMBAS
&lt;/h3&gt;

&lt;p&gt;PEMDAS was created to help remember the mathematical order of operations.&lt;/p&gt;

&lt;h3&gt;
  
  
  PEMBAS Rank and Priority
&lt;/h3&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Rank/Priority&lt;/th&gt;
&lt;th&gt;Operation&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;1&lt;/td&gt;
&lt;td&gt;Parentheses (Brackets)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;2&lt;/td&gt;
&lt;td&gt;Exponents and Roots&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;3&lt;/td&gt;
&lt;td&gt;* Multiplication&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;4&lt;/td&gt;
&lt;td&gt;* Division&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;5&lt;/td&gt;
&lt;td&gt;** Addition&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;6&lt;/td&gt;
&lt;td&gt;** Subtraction&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;* In PEMDAS Multiplication and Division have equal rank in the order of operations and do not need to be in any specific order. Whichever comes first, from left to right, is performed first.&lt;/p&gt;

&lt;p&gt;** The same principle of equal ranking applies to Addition and Subtraction. Whichever comes first, from left to right, is performed first. &lt;/p&gt;

&lt;p&gt;Examples:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="c1"&gt;# Here multiplication happens first then the division
&lt;/span&gt;&lt;span class="mi"&gt;6&lt;/span&gt; &lt;span class="o"&gt;*&lt;/span&gt; &lt;span class="mi"&gt;2&lt;/span&gt; &lt;span class="o"&gt;/&lt;/span&gt; &lt;span class="mi"&gt;4&lt;/span&gt;
&lt;span class="mf"&gt;3.0&lt;/span&gt;

&lt;span class="c1"&gt;# And here the Division takes place first the the multiplication
&lt;/span&gt;&lt;span class="mi"&gt;6&lt;/span&gt; &lt;span class="o"&gt;/&lt;/span&gt; &lt;span class="mi"&gt;2&lt;/span&gt; &lt;span class="o"&gt;*&lt;/span&gt; &lt;span class="mi"&gt;4&lt;/span&gt;
&lt;span class="mf"&gt;12.0&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  Division and Floor Division
&lt;/h2&gt;

&lt;p&gt;In Python, there are two ways to divide numbers:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;The &lt;em&gt;normal division&lt;/em&gt; using the &lt;code&gt;/&lt;/code&gt; operator;&lt;/li&gt;
&lt;li&gt;and the &lt;em&gt;floor division&lt;/em&gt;, using the &lt;code&gt;//&lt;/code&gt; operator.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Which one we will use will depend on the result we want to achieve.&lt;/p&gt;

&lt;p&gt;What is the difference between the two?&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;The single forward slash operator &lt;code&gt;/&lt;/code&gt; is known as &lt;em&gt;float division&lt;/em&gt; and always returns a float point value.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;We would normally expect the following when performing a &lt;em&gt;float division&lt;/em&gt;.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="c1"&gt;# Two integers
&lt;/span&gt;&lt;span class="mi"&gt;100&lt;/span&gt; &lt;span class="o"&gt;/&lt;/span&gt; &lt;span class="mi"&gt;30&lt;/span&gt;
&lt;span class="mf"&gt;3.3333333333333335&lt;/span&gt;

&lt;span class="c1"&gt;# One float and an integer
&lt;/span&gt;&lt;span class="mf"&gt;100.0&lt;/span&gt; &lt;span class="o"&gt;/&lt;/span&gt; &lt;span class="mi"&gt;30&lt;/span&gt;
&lt;span class="mf"&gt;3.3333333333333335&lt;/span&gt;

&lt;span class="c1"&gt;# Two floats
&lt;/span&gt;&lt;span class="mf"&gt;100.0&lt;/span&gt; &lt;span class="o"&gt;/&lt;/span&gt; &lt;span class="mf"&gt;30.0&lt;/span&gt;
&lt;span class="mf"&gt;3.3333333333333335&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;blockquote&gt;
&lt;p&gt;The double forward slash operator &lt;code&gt;//&lt;/code&gt; returns a &lt;em&gt;floored&lt;/em&gt; integer or a &lt;em&gt;floating point&lt;/em&gt; value.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;The result of a double slash operator will depend on whether we use &lt;code&gt;int&lt;/code&gt; or &lt;code&gt;float&lt;/code&gt; numbers.&lt;/p&gt;

&lt;p&gt;Examples:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="c1"&gt;# Two integers return an integer. Where it is an exact division, 
# and there is no remainder.
&lt;/span&gt;&lt;span class="mi"&gt;100&lt;/span&gt; &lt;span class="o"&gt;//&lt;/span&gt; &lt;span class="mi"&gt;25&lt;/span&gt;
&lt;span class="mi"&gt;4&lt;/span&gt;

&lt;span class="c1"&gt;# One integer and a float, always return a float.
&lt;/span&gt;&lt;span class="mi"&gt;100&lt;/span&gt; &lt;span class="o"&gt;//&lt;/span&gt; &lt;span class="mf"&gt;25.0&lt;/span&gt;
&lt;span class="mf"&gt;4.0&lt;/span&gt;

&lt;span class="c1"&gt;# Two floats always return a float.
&lt;/span&gt;&lt;span class="mf"&gt;100.0&lt;/span&gt; &lt;span class="o"&gt;//&lt;/span&gt; &lt;span class="mf"&gt;25.0&lt;/span&gt;
&lt;span class="mf"&gt;4.0&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;One interesting note about this is what happens with negative numbers:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="mf"&gt;7.0&lt;/span&gt; &lt;span class="o"&gt;//&lt;/span&gt; &lt;span class="mi"&gt;3&lt;/span&gt;
&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="mf"&gt;3.0&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;This makes sense because the result will be rounded down (i.e., floored), meaning that while we may expect it to be equal to -2.0, rounded down, the value is correctly -3.0.&lt;/p&gt;

&lt;h2&gt;
  
  
  Complex Numbers
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Complex&lt;/strong&gt; numbers are the numbers that are expressed in the form of a+ib where, a,b are real numbers and  ‘i’ is an imaginary number called “iota”. The value of i = (√-1). For example, 2+3i is a complex number, where 2 is a real number (Re) and 3i is an imaginary number (Im). &lt;/p&gt;

&lt;p&gt;Examples of complex numbers:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="n"&gt;x&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="mi"&gt;7&lt;/span&gt; &lt;span class="o"&gt;+&lt;/span&gt; &lt;span class="mi"&gt;2&lt;/span&gt;&lt;span class="n"&gt;i&lt;/span&gt;
&lt;span class="n"&gt;y&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="mi"&gt;5&lt;/span&gt; &lt;span class="o"&gt;+&lt;/span&gt; &lt;span class="mf"&gt;1.2&lt;/span&gt;&lt;span class="n"&gt;i&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  Conversion between Numeric types
&lt;/h2&gt;

&lt;p&gt;A Numeric type can be converted into another numeric type by typecasting with the intended type.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="n"&gt;x&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="mf"&gt;2.78&lt;/span&gt;
&lt;span class="n"&gt;int_x&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nf"&gt;int&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;x&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;  &lt;span class="c1"&gt;# converts a float into an integer
&lt;/span&gt;
&lt;span class="n"&gt;y&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="mi"&gt;4&lt;/span&gt;
&lt;span class="n"&gt;float_y&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nf"&gt;float&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;y&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;  &lt;span class="c1"&gt;# converts an integer into a float
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  Important notes on conversions:
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Converting a float to an integer will &lt;em&gt;truncate&lt;/em&gt; the decimal part. In the example above, converting &lt;code&gt;2.78&lt;/code&gt; into an integer, the result was &lt;code&gt;2&lt;/code&gt;, the number &lt;em&gt;before&lt;/em&gt; the decimal point. Turning &lt;code&gt;2.99&lt;/code&gt; into an &lt;code&gt;int&lt;/code&gt; would still return &lt;code&gt;2&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;Converting a large integer to float &lt;em&gt;may lose precision&lt;/em&gt;.&lt;/li&gt;
&lt;li&gt;Converting an integer to a complex number just adds &lt;code&gt;0j&lt;/code&gt; as the imaginary part.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  The use of Numeric types
&lt;/h2&gt;

&lt;p&gt;There are numeric types all over the programming world. Some examples of areas where Numeric types are used but not restricted to:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Finance apps&lt;/li&gt;
&lt;li&gt;Games&lt;/li&gt;
&lt;li&gt;Scientific apps&lt;/li&gt;
&lt;li&gt;Statistics&lt;/li&gt;
&lt;li&gt;Graphics&lt;/li&gt;
&lt;li&gt;Machine Learning&lt;/li&gt;
&lt;li&gt;Web Development&lt;/li&gt;
&lt;li&gt;Data Analysis and Data Science&lt;/li&gt;
&lt;li&gt;Embedded systems&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Summary
&lt;/h2&gt;

&lt;p&gt;Whether using Python for programming, analysis, or web development, amongst other fields, developers rely heavily on Numeric types. Integers, float, complex numbers, calculations, equations, designing; the possibilities are endless. &lt;/p&gt;

&lt;p&gt;Understanding how Numeric types work is an essential and useful skill people should have. It becomes even more important if our fields of work involve working with programming languages. Fortunately, Python is a solid language for processing numbers and has a very generous number of libraries available to expand Python's capability even further. &lt;/p&gt;

&lt;p&gt;Have a go at exploring Python Numeric types. It will certainly be a nice &lt;em&gt;addition&lt;/em&gt; to your programming skills. Pun intended. &lt;/p&gt;

</description>
      <category>python</category>
      <category>programming</category>
      <category>data</category>
      <category>mathematics</category>
    </item>
    <item>
      <title>Back to Basics - Pandas #01</title>
      <dc:creator>Charles De Barros</dc:creator>
      <pubDate>Tue, 09 Apr 2024 11:20:31 +0000</pubDate>
      <link>https://dev.to/charlesdebarros/back-to-basics-pandas-1-557p</link>
      <guid>https://dev.to/charlesdebarros/back-to-basics-pandas-1-557p</guid>
      <description>&lt;h2&gt;
  
  
  Introduction to Pandas
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://pandas.pydata.org/docs/"&gt;Pandas Official Documentation&lt;/a&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  What is Pandas?
&lt;/h2&gt;

&lt;p&gt;As per the &lt;em&gt;Pandas Official Documentation&lt;/em&gt; website:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Pandas&lt;/strong&gt; is an open source, BSD-licensed library providing high-performance, easy-to-use data structures and data analysis tools for the &lt;a href="https://www.python.org/"&gt;Python&lt;/a&gt; programming language.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Pandas simplifies common data analysis tasks:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Load data from numerous types of files and online sources&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Fast and efficient handling of large amounts of data&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Filtering, sorting, editing and processing of data&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Joining and aggregation of datasets&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Tools for time series and statistical analysis&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Display of data in tables and charts&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Pandas data structures: DataFrames &amp;amp; Series
&lt;/h2&gt;

&lt;h3&gt;
  
  
  &lt;strong&gt;DataFrame&lt;/strong&gt; (rows and columns)
&lt;/h3&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;DataFrame&lt;/strong&gt; is a 2-dimensional labelled data structure with columns of potentially different types. You can think of it like a spreadsheet, an SQL table, or a dictionary of Series objects. It is generally the most commonly used Pandas object. Like Series, DataFrame accepts many different kinds of input:&lt;/p&gt;
&lt;/blockquote&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Dict of 1D ndarrays, lists, dicts, or &lt;strong&gt;Series&lt;/strong&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;2-D numpy.ndarray&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;em&gt;Structured or record&lt;/em&gt; ndarray&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;A &lt;strong&gt;Series&lt;/strong&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Another &lt;strong&gt;DataFrame&lt;/strong&gt;&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Notes on &lt;strong&gt;Data Frames&lt;/strong&gt;:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;2-dimensional labelled data structure made of rows and columns of 'potentially' different types.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Similar principle of a spreadsheet or SQL table. The most commonly used data structure used in Pandas.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Indexing starts from 0 (zero) for both rows and columns.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Series (one-dimensional data)
&lt;/h3&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Series&lt;/strong&gt; is a one-dimensional labelled array capable of holding any data type (integers, strings, floating point numbers, Python objects, etc.).&lt;/p&gt;
&lt;/blockquote&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;It is a one-dimensional labelled data.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;An example of a Series is one column from a Data Frame.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Indexing in a Series starts from 0 (zero).&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The basic method to create a &lt;strong&gt;Series&lt;/strong&gt; is to call:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="n"&gt;s&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;pd&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nc"&gt;Series&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;data&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;index&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="n"&gt;index&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;A &lt;strong&gt;Series&lt;/strong&gt; plus another &lt;strong&gt;Series&lt;/strong&gt; equals a &lt;strong&gt;Data Frame&lt;/strong&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  Pandas Common Data Types
&lt;/h2&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Data type&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;object&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Used for strings, or if the column contains a mix of data types&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;int64&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Used for integers (&lt;em&gt;'64'&lt;/em&gt; relates to memory usage)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;float64&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Used for floats, or where the column has both integers and &lt;em&gt;NaN&lt;/em&gt; values&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;bool&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Booleans, i.e., &lt;code&gt;True&lt;/code&gt; or &lt;code&gt;False&lt;/code&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;
&lt;strong&gt;datatime64&lt;/strong&gt; / &lt;strong&gt;timedelta&lt;/strong&gt;
&lt;/td&gt;
&lt;td&gt;Time-based values&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;h2&gt;
  
  
  Pandas Missing Values
&lt;/h2&gt;

&lt;p&gt;The &lt;code&gt;NaN&lt;/code&gt; marker represents Pandas missing values or &lt;code&gt;NULL&lt;/code&gt; values. In most cases, the terms &lt;em&gt;missing&lt;/em&gt; and &lt;em&gt;null&lt;/em&gt; are interchangeable. Date values use the &lt;strong&gt;NaT&lt;/strong&gt; marker.&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Symbol&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;NaN&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Used to indicate missing values in most instances and is supported by the &lt;em&gt;floar&lt;/em&gt; datatype.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;NaT&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Used to indicate missing values where a &lt;code&gt;date type&lt;/code&gt; object may have been expected.&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;h2&gt;
  
  
  Exploratory Data Analysis - EDA
&lt;/h2&gt;

&lt;p&gt;What is &lt;strong&gt;EDA&lt;/strong&gt;?&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Exploratory data analysis (EDA) is used by data scientists to analyse and investigate data sets and summarise their main characteristics, often employing data visualisation methods.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;&lt;strong&gt;EDA&lt;/strong&gt; helps determine how best to manipulate data sources to get the answers needed, making it easier for data scientists to discover patterns, spot anomalies, test a hypothesis, or check assumptions.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;EDA&lt;/strong&gt; is primarily used to see what data can reveal beyond the &lt;em&gt;formal modelling&lt;/em&gt; or &lt;em&gt;hypothesis testing&lt;/em&gt; task and provides a better understanding of data set variables and their relationship. It can also help determine if the &lt;em&gt;statistical techniques&lt;/em&gt; you are considering for data analysis are appropriate.&lt;/p&gt;

&lt;h2&gt;
  
  
  Basic Pandas Data Frame exploration
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Importing Pandas (and NumPy)
&lt;/h3&gt;

&lt;p&gt;The following lines will bring both &lt;strong&gt;Pandas&lt;/strong&gt; and &lt;strong&gt;NumPy&lt;/strong&gt; libraries to the working environment.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;pandas&lt;/span&gt; &lt;span class="k"&gt;as&lt;/span&gt; &lt;span class="n"&gt;pd&lt;/span&gt;
&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;numpy&lt;/span&gt; &lt;span class="k"&gt;as&lt;/span&gt; &lt;span class="n"&gt;np&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Data can be imported from various formats: &lt;em&gt;CVS&lt;/em&gt;, &lt;em&gt;spreadsheets&lt;/em&gt;, &lt;em&gt;JSON&lt;/em&gt;, &lt;em&gt;databases&lt;/em&gt;, etc.&lt;/p&gt;

&lt;p&gt;The following line will import a &lt;em&gt;CSV&lt;/em&gt; (Comma Separated Values) to the working sessions.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="n"&gt;df&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;pd&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;read_csv&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="o"&gt;&amp;lt;&lt;/span&gt;&lt;span class="n"&gt;filepath&lt;/span&gt;&lt;span class="o"&gt;&amp;gt;&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Note:&lt;/strong&gt; different parameters can be used with the &lt;code&gt;.read_csv()&lt;/code&gt; function. In its simplest form, only the &lt;em&gt;filepath&lt;/em&gt; is required.&lt;/p&gt;

&lt;p&gt;The "&lt;em&gt;Telco-Customer-Churn.csv&lt;/em&gt;" dataset can be found &lt;a href="https://www.kaggle.com/datasets/blastchar/telco-customer-churn"&gt;&lt;strong&gt;here&lt;/strong&gt;&lt;/a&gt; at &lt;a href="//www.kaggle.com"&gt;Kaggle&lt;/a&gt;.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="c1"&gt;# Will open the 'Telco-Customer-Churn.csv' in the 'data' folder
&lt;/span&gt;&lt;span class="n"&gt;df&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;pd&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;read_csv&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;data/Telco-Customer-Churn.csv&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  Checking Top/Bottom rows
&lt;/h3&gt;

&lt;p&gt;We can use the &lt;code&gt;.head()&lt;/code&gt; and the &lt;code&gt;.tail()&lt;/code&gt; functions to see the top first 5 rows, and the bottom last 5 rows, in &lt;em&gt;ascending order&lt;/em&gt;.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;The &lt;code&gt;.head()&lt;/code&gt; function returns the first n rows for the object based on position. It is useful for quickly testing if your object has the right type of data in it. The default is &lt;strong&gt;5&lt;/strong&gt; rows.&lt;/p&gt;

&lt;p&gt;The &lt;code&gt;.tails()&lt;/code&gt; function returns the last n rows from the object based on position. It is useful for quickly verifying data, for example, after sorting or appending rows. The default is &lt;strong&gt;5&lt;/strong&gt; rows.&lt;br&gt;
&lt;/p&gt;
&lt;/blockquote&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="c1"&gt;# Returns the first 5 top rows in ASC order
&lt;/span&gt;&lt;span class="n"&gt;df&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;head&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;

&lt;span class="c1"&gt;# Returns the last 5 bottom rows in ASC order
&lt;/span&gt;&lt;span class="n"&gt;df&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;tail&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  Checking random sample rows
&lt;/h3&gt;

&lt;blockquote&gt;
&lt;p&gt;The &lt;code&gt;.sample()&lt;/code&gt; will return sample rows &lt;strong&gt;&lt;em&gt;at random&lt;/em&gt;&lt;/strong&gt;. It offers an interesting look at the &lt;em&gt;body&lt;/em&gt; of the Data Frame. The default is to return only &lt;strong&gt;1&lt;/strong&gt; row.&lt;br&gt;
&lt;/p&gt;
&lt;/blockquote&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="c1"&gt;# Returns 10 random row samples.
&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;sample&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;10&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  Showing the Data Frame Dimensions
&lt;/h3&gt;

&lt;blockquote&gt;
&lt;p&gt;The &lt;code&gt;.shape&lt;/code&gt; method to display the &lt;code&gt;dataframe&lt;/code&gt; dimensions: rows and columns.&lt;br&gt;
&lt;/p&gt;
&lt;/blockquote&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="c1"&gt;# In the 'Telco-Customer-Churn.csv' there are 7043 rows and 21 columns.
&lt;/span&gt;&lt;span class="n"&gt;df&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;shape&lt;/span&gt;
&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;7043&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;21&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  Displaying the Data Frame basic info
&lt;/h3&gt;

&lt;blockquote&gt;
&lt;p&gt;The &lt;code&gt;.info()&lt;/code&gt; prints information about a DataFrame including the index dtype and columns, non-null values and memory usage.&lt;br&gt;
&lt;/p&gt;
&lt;/blockquote&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="c1"&gt;# Print a concise summary of a DataFrame.
&lt;/span&gt;&lt;span class="n"&gt;df&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;info&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Returns:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="o"&gt;&amp;lt;&lt;/span&gt;&lt;span class="k"&gt;class&lt;/span&gt; &lt;span class="err"&gt;'&lt;/span&gt;&lt;span class="nc"&gt;pandas&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;core&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;frame&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;DataFrame&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;&amp;gt;
RangeIndex: 7043 entries, 0 to 7042
Data columns (total 21 columns):
 #   Column            Non-Null Count  Dtype  
---  ------            --------------  -----  
 0   customerID        7043 non-null   object 
 1   gender            7043 non-null   object 
 2   SeniorCitizen     7043 non-null   int64  
 3   Partner           7043 non-null   object 
 4   Dependents        7043 non-null   object 
 5   tenure            7043 non-null   int64  
 6   PhoneService      7043 non-null   object 
 7   MultipleLines     7043 non-null   object 
 8   InternetService   7043 non-null   object 
 9   OnlineSecurity    7043 non-null   object 
 10  OnlineBackup      7043 non-null   object 
 11  DeviceProtection  7043 non-null   object 
 12  TechSupport       7043 non-null   object 
 13  StreamingTV       7043 non-null   object 
 14  StreamingMovies   7043 non-null   object 
 15  Contract          7043 non-null   object 
 16  PaperlessBilling  7043 non-null   object 
 17  PaymentMethod     7043 non-null   object 
 18  MonthlyCharges    7043 non-null   float64
 19  TotalCharges      7043 non-null   object 
 20  Churn             7043 non-null   object 
dtypes: float64(1), int64(2), object(18)
memory usage: 1.1+ MB
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  Generating Descriptive Statistics
&lt;/h3&gt;

&lt;blockquote&gt;
&lt;p&gt;The &lt;code&gt;.describe()&lt;/code&gt; function generates descriptive statistics.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;&lt;em&gt;Descriptive statistics&lt;/em&gt; is the process of using current and historical data to identify trends and relationships. It includes those that summarize the central tendency, dispersion and shape of a dataset’s distribution, &lt;em&gt;excluding&lt;/em&gt;&lt;strong&gt;NaN&lt;/strong&gt; values.&lt;/p&gt;

&lt;p&gt;Analyzes both numeric and object series, as well as DataFrame column sets of mixed data types. The output will vary depending on what is provided.&lt;/p&gt;

&lt;p&gt;It returns the following:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;count: Total number of non-missing values&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;mean: The mean value&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;std: The standard deviation&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;min: The minimum value&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;25%: The value of the first quartile (25th percentile)&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;50%: The median value (50th percentile)&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;75%: The value of the third quartile (75th percentile)&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;max: The maximum value&lt;br&gt;
&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="n"&gt;df&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;describe&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Returns:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;      &lt;span class="n"&gt;SeniorCitizen&lt;/span&gt;     &lt;span class="n"&gt;tenure&lt;/span&gt;  &lt;span class="n"&gt;MonthlyCharges&lt;/span&gt;
&lt;span class="n"&gt;count&lt;/span&gt;   &lt;span class="mf"&gt;7043.000000&lt;/span&gt;   &lt;span class="mf"&gt;7043.000000&lt;/span&gt;      &lt;span class="mf"&gt;7043.000000&lt;/span&gt;
&lt;span class="n"&gt;mean&lt;/span&gt;       &lt;span class="mf"&gt;0.162147&lt;/span&gt;     &lt;span class="mf"&gt;32.371149&lt;/span&gt;        &lt;span class="mf"&gt;64.761692&lt;/span&gt;
&lt;span class="n"&gt;std&lt;/span&gt;     &lt;span class="mf"&gt;0.368612&lt;/span&gt;     &lt;span class="mf"&gt;24.559481&lt;/span&gt;       &lt;span class="mf"&gt;30.090047&lt;/span&gt;
&lt;span class="nb"&gt;min&lt;/span&gt;     &lt;span class="mf"&gt;0.000000&lt;/span&gt;      &lt;span class="mf"&gt;0.000000&lt;/span&gt;       &lt;span class="mf"&gt;18.250000&lt;/span&gt;
&lt;span class="mi"&gt;25&lt;/span&gt;&lt;span class="o"&gt;%&lt;/span&gt;     &lt;span class="mf"&gt;0.000000&lt;/span&gt;      &lt;span class="mf"&gt;9.000000&lt;/span&gt;       &lt;span class="mf"&gt;35.500000&lt;/span&gt;
&lt;span class="mi"&gt;50&lt;/span&gt;&lt;span class="o"&gt;%&lt;/span&gt;     &lt;span class="mf"&gt;0.000000&lt;/span&gt;     &lt;span class="mf"&gt;29.000000&lt;/span&gt;       &lt;span class="mf"&gt;70.350000&lt;/span&gt;
&lt;span class="mi"&gt;75&lt;/span&gt;&lt;span class="o"&gt;%&lt;/span&gt;     &lt;span class="mf"&gt;0.000000&lt;/span&gt;     &lt;span class="mf"&gt;55.000000&lt;/span&gt;       &lt;span class="mf"&gt;89.850000&lt;/span&gt;
&lt;span class="nb"&gt;max&lt;/span&gt;     &lt;span class="mf"&gt;1.000000&lt;/span&gt;     &lt;span class="mf"&gt;72.000000&lt;/span&gt;      &lt;span class="mf"&gt;118.750000&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  Sorting Values
&lt;/h3&gt;

&lt;blockquote&gt;
&lt;p&gt;The &lt;code&gt;.sort_values()&lt;/code&gt; function sorts by the values along either axis. it allows us to choose a 'column' to sort it by. The default is &lt;strong&gt;&lt;em&gt;ASC&lt;/em&gt;&lt;/strong&gt;.&lt;br&gt;
&lt;/p&gt;
&lt;/blockquote&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="c1"&gt;# ascending=False will sort the column values in DESC order.
&lt;/span&gt;&lt;span class="n"&gt;df&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;sort_values&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;by&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;monthlycharleges&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;ascending&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="bp"&gt;False&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  Summary
&lt;/h2&gt;

&lt;p&gt;As a high-level, data manipulation and analysis library, Pandas is a powerful and versatile tool in any Data Analyst arsenal. It is fast, easy to use, and very comprehensive to analyse and manipulate datasets.&lt;/p&gt;

&lt;p&gt;Pandas' realm of functions and methods is vast, no doubt about it. Pandas is a must-have tool data analysts should be acquainted with and use with their daily tasks.&lt;/p&gt;

</description>
      <category>python</category>
      <category>pandas</category>
      <category>data</category>
    </item>
    <item>
      <title>Back to Basics - Python #01</title>
      <dc:creator>Charles De Barros</dc:creator>
      <pubDate>Mon, 01 Apr 2024 16:25:16 +0000</pubDate>
      <link>https://dev.to/charlesdebarros/back-to-basics-python-1-39p1</link>
      <guid>https://dev.to/charlesdebarros/back-to-basics-python-1-39p1</guid>
      <description>&lt;h2&gt;
  
  
  Intro
&lt;/h2&gt;

&lt;p&gt;It's March 2024 and I have joined a Level 4 Data Analytics Bootcamp! Hurray! Technically lessons will only start at the beginning of April but I am already very excited about it and thinking of things.&lt;/p&gt;

&lt;p&gt;To celebrate my new adventure and start having my brain cells back working, I am writing a series of &lt;strong&gt;Back to Basics&lt;/strong&gt; articles exploring Data Analytics basics. I am starting with Python, the programming language we will use in the boot camp, its components, data exploring libraries (NumPy, Pandas, Matplotlib anyone?), and styling conventions, to name a few.&lt;/p&gt;

&lt;p&gt;This series intends to be more of a reference for myself and my bootcamp studies but I hope it can be useful for anyone starting their journey on Data Analysis. It is far from a comprehensive guide; it is indeed an open, live document that will, hopefully, expand with time. Any useful additions and constructive criticism will be immensely appreciated.&lt;/p&gt;

&lt;p&gt;In this first edition of &lt;strong&gt;Back to Basics&lt;/strong&gt; I am going to explore one of the very basic Python's building blocks: &lt;strong&gt;&lt;em&gt;variables&lt;/em&gt;&lt;/strong&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  Introduction to Python
&lt;/h2&gt;

&lt;p&gt;Python is a &lt;a href="https://en.wikipedia.org/wiki/High-level_programming_language"&gt;high-level&lt;/a&gt;, &lt;a href="https://en.wikipedia.org/wiki/Object-oriented_programming"&gt;object-oriented&lt;/a&gt;, &lt;a href="https://en.wikipedia.org/wiki/General-purpose_programming_language"&gt;general-purpose&lt;/a&gt; programming language. Guido Van Rossum, a Dutch programmer, first conceived it in the late 1980s. It first appeared in February 1991, and its 1.0 version was released in 1994.&lt;/p&gt;

&lt;p&gt;Van Rossum thought programming with &lt;strong&gt;C&lt;/strong&gt;, another programming language, was too time-consuming and a programming language should allow programmers to work faster and more efficiently. Also, he primed for readability, and simplicity with bash capabilities.&lt;/p&gt;

&lt;p&gt;As of the writing of this article, Python is on version &lt;strong&gt;&lt;em&gt;3.12.2&lt;/em&gt;&lt;/strong&gt; and it can be downloaded &lt;a href="https://www.python.org/downloads/"&gt;here&lt;/a&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  Python's naming curiosity
&lt;/h2&gt;

&lt;p&gt;Contrary to popular belief, Python was not named after a snake species, it was named as a tribute to the British comedy group &lt;a href="https://en.wikipedia.org/wiki/Monty_Python"&gt;Monty Python&lt;/a&gt; as Python developers aim it to be fun to use.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--F_C0GhtL--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://external-content.duckduckgo.com/iu/%3Fu%3Dhttps%253A%252F%252Fstatic2.srcdn.com%252Fwordpress%252Fwp-content%252Fuploads%252F2020%252F05%252FMonty-Python-and-the-Holy-Grail.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--F_C0GhtL--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://external-content.duckduckgo.com/iu/%3Fu%3Dhttps%253A%252F%252Fstatic2.srcdn.com%252Fwordpress%252Fwp-content%252Fuploads%252F2020%252F05%252FMonty-Python-and-the-Holy-Grail.jpg" alt="Monty Python" width="800" height="421"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Variables
&lt;/h2&gt;

&lt;h3&gt;
  
  
  What is a variable?
&lt;/h3&gt;

&lt;blockquote&gt;
&lt;p&gt;A variable is a container for storing data. A variable is a basic building block of a program.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Python is not a "statically typed" programming language, i.e., we do not need to declare variables &lt;strong&gt;types&lt;/strong&gt; before using them. Python is a "dynamically typed" programming language, i.e., it only checks variables at execution time (runtime). Python is so intelligent it can figure those out without us explicitly having to tell it.&lt;/p&gt;

&lt;p&gt;The variable &lt;em&gt;value&lt;/em&gt; can be changed during the execution of a program.&lt;br&gt;
A variable does not hold a real value but a reference to it. For example, a variable called 'x' with a value of '10' does not hold the real integer '10' but a reference to where it is located in the computer's memory. It works as a pointer to where the value is stored.&lt;/p&gt;

&lt;p&gt;If we assign a different value to 'x', the variable reference location will change and point to the new in-memory location. '10' will still be '10. The integer's value did not change in the computer's memory. &lt;/p&gt;

&lt;p&gt;Example:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="n"&gt;x&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="mi"&gt;10&lt;/span&gt;  &lt;span class="c1"&gt;# points to the integer '10' location reference
&lt;/span&gt;&lt;span class="n"&gt;x&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="mi"&gt;20&lt;/span&gt;  &lt;span class="c1"&gt;# it now points to the integer '20' location reference
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  Declaring a variable
&lt;/h2&gt;

&lt;p&gt;A variable is declared (created) when a value is assigned to it for the first time. To declare a variable we need to specify a &lt;strong&gt;name&lt;/strong&gt; and a &lt;strong&gt;type&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Note:&lt;/strong&gt; Python has &lt;strong&gt;no&lt;/strong&gt; command for declaring a variable.&lt;/p&gt;

&lt;p&gt;The syntax to declare a variable can vary amongst programming languages. In Python, we use a &lt;strong&gt;=&lt;/strong&gt; (equal symbol) to assign a value to a variable name.&lt;/p&gt;

&lt;p&gt;For example:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="n"&gt;quantity&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="mi"&gt;1&lt;/span&gt;
&lt;span class="n"&gt;price&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="mf"&gt;2.5&lt;/span&gt;
&lt;span class="n"&gt;product&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;muffin&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;
&lt;span class="n"&gt;order&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="mi"&gt;2&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;cakes&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mf"&gt;5.95&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The variables's names are 'quantity', 'price', 'product', and 'order'. The variable values are 1, 2.5, 'muffin', and [2, 'cakes', 5.95]. The variable values can be of different types, as explained further below.&lt;/p&gt;

&lt;h2&gt;
  
  
  Variable Naming Rules
&lt;/h2&gt;

&lt;p&gt;Variables in Python can be of any length, and consist of uppercase and lowercase letters (A-Z, a-z), digits(0-9), and the underscore character '_'.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Note:&lt;/strong&gt; The first character of a variable name &lt;strong&gt;cannot&lt;/strong&gt; be a digit. Declaring a variable with the name &lt;strong&gt;&lt;em&gt;'2x&lt;/em&gt;&lt;/strong&gt;' will raise a &lt;strong&gt;Syntax Error&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;Example:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="mi"&gt;2&lt;/span&gt;&lt;span class="n"&gt;x&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="mi"&gt;4&lt;/span&gt;
  &lt;span class="n"&gt;Cell&lt;/span&gt; &lt;span class="n"&gt;In&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="mi"&gt;2&lt;/span&gt;&lt;span class="p"&gt;],&lt;/span&gt; &lt;span class="n"&gt;line&lt;/span&gt; &lt;span class="mi"&gt;1&lt;/span&gt;
    &lt;span class="mi"&gt;2&lt;/span&gt;&lt;span class="n"&gt;x&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="mi"&gt;4&lt;/span&gt;
    &lt;span class="o"&gt;^&lt;/span&gt;
&lt;span class="nb"&gt;SyntaxError&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="n"&gt;invalid&lt;/span&gt; &lt;span class="n"&gt;decimal&lt;/span&gt; &lt;span class="n"&gt;literal&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Note:&lt;/strong&gt; Variable names cannot have spaces. Declaring a variable name with space on it will raise a &lt;strong&gt;Syntax Error&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;Example:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="n"&gt;party&lt;/span&gt; &lt;span class="n"&gt;cake&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;good&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;
  &lt;span class="n"&gt;Cell&lt;/span&gt; &lt;span class="n"&gt;In&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;],&lt;/span&gt; &lt;span class="n"&gt;line&lt;/span&gt; &lt;span class="mi"&gt;1&lt;/span&gt;
    &lt;span class="n"&gt;party&lt;/span&gt; &lt;span class="n"&gt;cake&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;good&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;
          &lt;span class="o"&gt;^&lt;/span&gt;
&lt;span class="nb"&gt;SyntaxError&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="n"&gt;invalid&lt;/span&gt; &lt;span class="n"&gt;syntax&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  Case-sensitiviness
&lt;/h2&gt;

&lt;p&gt;Python variables are case-sensitive, i.e., variables named 'cakes', 'Cakes', and 'CAKES', although using the same word, are three different variables. They reference different things.&lt;/p&gt;

&lt;p&gt;Example:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="n"&gt;cakes&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;yummy&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;
&lt;span class="n"&gt;Cakes&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;delicious&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;
&lt;span class="n"&gt;CAKES&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;more please&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  Python Style Guide = PEP 8
&lt;/h2&gt;

&lt;p&gt;Python has a &lt;strong&gt;recommended&lt;/strong&gt; Styling Guide. It is available &lt;a href="https://peps.python.org/pep-0008/#introduction"&gt;here&lt;/a&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  Python Reserved words
&lt;/h2&gt;

&lt;p&gt;We cannot use certain words as variable names, function names, or any other identifier because they are reserved for exclusive Python use.&lt;/p&gt;

&lt;p&gt;As of the writing of this article, the following are Python's reserved words:&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;&lt;/th&gt;
&lt;th&gt;&lt;/th&gt;
&lt;th&gt;&lt;/th&gt;
&lt;th&gt;&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;False&lt;/td&gt;
&lt;td&gt;def&lt;/td&gt;
&lt;td&gt;if&lt;/td&gt;
&lt;td&gt;raise&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;None&lt;/td&gt;
&lt;td&gt;del&lt;/td&gt;
&lt;td&gt;import&lt;/td&gt;
&lt;td&gt;return&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;True&lt;/td&gt;
&lt;td&gt;elif&lt;/td&gt;
&lt;td&gt;in&lt;/td&gt;
&lt;td&gt;try&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;and&lt;/td&gt;
&lt;td&gt;else&lt;/td&gt;
&lt;td&gt;is&lt;/td&gt;
&lt;td&gt;while&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;as&lt;/td&gt;
&lt;td&gt;except&lt;/td&gt;
&lt;td&gt;lambda&lt;/td&gt;
&lt;td&gt;with&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;assert&lt;/td&gt;
&lt;td&gt;finally&lt;/td&gt;
&lt;td&gt;nonlocal&lt;/td&gt;
&lt;td&gt;yield&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;break&lt;/td&gt;
&lt;td&gt;for&lt;/td&gt;
&lt;td&gt;not&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;class&lt;/td&gt;
&lt;td&gt;form&lt;/td&gt;
&lt;td&gt;or&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;continue&lt;/td&gt;
&lt;td&gt;global&lt;/td&gt;
&lt;td&gt;pass&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;&lt;strong&gt;Note:&lt;/strong&gt; All &lt;strong&gt;&lt;em&gt;keyword&lt;/em&gt;&lt;/strong&gt; are in &lt;strong&gt;lowercase&lt;/strong&gt; with the exception of &lt;em&gt;True&lt;/em&gt;, &lt;em&gt;False&lt;/em&gt;, and &lt;em&gt;None&lt;/em&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  Python built-in Data Type
&lt;/h2&gt;

&lt;p&gt;A data type in a programming language refers to an attribute that identifies the nature of a piece of data's value. It tells a computer how to interpret the data value. Some common examples include strings, integers, floats, and booleans.&lt;/p&gt;

&lt;p&gt;Understanding &lt;strong&gt;Data Types&lt;/strong&gt; is important as &lt;em&gt;variables&lt;/em&gt; can store data types. Different data types can do different things.&lt;/p&gt;

&lt;p&gt;The following Data Types are &lt;strong&gt;built-in&lt;/strong&gt; by default in Python.&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;th&gt;Type&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Text&lt;/td&gt;
&lt;td&gt;str&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Numeric&lt;/td&gt;
&lt;td&gt;int, float, complex&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Sequence&lt;/td&gt;
&lt;td&gt;list, tuple, range&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Mapping&lt;/td&gt;
&lt;td&gt;dict&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Set&lt;/td&gt;
&lt;td&gt;set, frozenset&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Boolean&lt;/td&gt;
&lt;td&gt;bool&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Binary&lt;/td&gt;
&lt;td&gt;bytes, bytearray, memoryview&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;None&lt;/td&gt;
&lt;td&gt;NoneType&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;To find the type of a variable, we can use Python's &lt;strong&gt;type()&lt;/strong&gt; function:&lt;/p&gt;

&lt;p&gt;For example:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="n"&gt;quantity&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="mi"&gt;1&lt;/span&gt;                &lt;span class="c1"&gt;# 'quantity' is of type 'int'
&lt;/span&gt;&lt;span class="n"&gt;price&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="mf"&gt;2.5&lt;/span&gt;                 &lt;span class="c1"&gt;# 'price' is of type 'float'
&lt;/span&gt;&lt;span class="n"&gt;product&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;muffin&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;          &lt;span class="c1"&gt;# 'product' is of type 'str'
&lt;/span&gt;&lt;span class="n"&gt;order&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="mi"&gt;2&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;cakes&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mf"&gt;5.95&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;  &lt;span class="c1"&gt;# 'order' is of type 'list'
&lt;/span&gt;
&lt;span class="nf"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;quantity&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nf"&gt;type&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;quantity&lt;/span&gt;&lt;span class="p"&gt;))&lt;/span&gt;
&lt;span class="nf"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;price&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nf"&gt;type&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;price&lt;/span&gt;&lt;span class="p"&gt;))&lt;/span&gt;
&lt;span class="nf"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;product&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nf"&gt;type&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;product&lt;/span&gt;&lt;span class="p"&gt;))&lt;/span&gt;
&lt;span class="nf"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;order&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nf"&gt;type&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;order&lt;/span&gt;&lt;span class="p"&gt;))&lt;/span&gt;

&lt;span class="c1"&gt;# Returns
&lt;/span&gt;&lt;span class="n"&gt;quantity&lt;/span&gt; &lt;span class="o"&gt;&amp;lt;&lt;/span&gt;&lt;span class="k"&gt;class&lt;/span&gt; &lt;span class="err"&gt;'&lt;/span&gt;&lt;span class="nc"&gt;int&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;&amp;gt;
price &amp;lt;class &lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="nb"&gt;float&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;&amp;gt;
product &amp;lt;class &lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="nb"&gt;str&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;&amp;gt;
order &amp;lt;class &lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="nb"&gt;list&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;&amp;gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  Summary
&lt;/h2&gt;

&lt;p&gt;Variables are essential building blocks of any programming language. Understanding how they work and what we can do with them will make the difference between a concise, clearly written codebase and a convoluted, difficult-to-understand, and maintain one.&lt;/p&gt;

&lt;p&gt;Consistency in how we create, name and use our variables will help us keep things under control as our codebase grows and becomes more complex. &lt;/p&gt;

&lt;p&gt;Treat your codebase with care. You will thank yourself later.&lt;/p&gt;

</description>
    </item>
  </channel>
</rss>
