<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Admin |</title><link>https://carlos-hugoblox.netlify.app/en/authors/admin/</link><atom:link href="https://carlos-hugoblox.netlify.app/en/authors/admin/index.xml" rel="self" type="application/rss+xml"/><description>Admin</description><generator>HugoBlox Kit (https://hugoblox.com)</generator><language>en-GB</language><lastBuildDate>Sat, 08 Feb 2020 17:46:34 +0000</lastBuildDate><item><title>Manipulating dataframes in R and Python</title><link>https://carlos-hugoblox.netlify.app/en/blog/2020/02/manipulating-dataframes-in-r-and-python/</link><pubDate>Sat, 08 Feb 2020 17:46:34 +0000</pubDate><guid>https://carlos-hugoblox.netlify.app/en/blog/2020/02/manipulating-dataframes-in-r-and-python/</guid><description>&lt;p&gt;While I have been using &lt;code&gt;R&lt;/code&gt; for many years now (mainly for data manipulation and visualization), and I am extremely happy with some of its features (like how easy is to deal with data or to create interactive reports that can be exported in plenty of different outputs, such as pdf, documents, slides, dashboards or blog posts like this one). However, I have always wanted to learn &lt;code&gt;python&lt;/code&gt;, mostly because it is a multi-purpose language that I would be able to use in other aspects of my everyday life such as web development, &lt;code&gt;QGIS&lt;/code&gt; or Academic research. It is for that reason that I have recently started to learn &lt;code&gt;python&lt;/code&gt;&amp;rsquo;s &lt;code&gt;pandas&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;In the following blog post I will be comparing how to perform the same tasks using &lt;code&gt;pandas&lt;/code&gt; and &lt;code&gt;tidyverse&lt;/code&gt;. This mainly serves two learning outcomes:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;To generate a cheat sheet that can work as a reminder (for myself): I know there are pages like
, but I learn by doing, so I needed to write the code myself)&lt;/li&gt;
&lt;li&gt;To use &lt;code&gt;reticulate&lt;/code&gt; package, which allows running both, &lt;code&gt;R&lt;/code&gt; and &lt;code&gt;python&lt;/code&gt; within the same document (a &lt;code&gt;Rmarkdown&lt;/code&gt; file to be more specific)&lt;/li&gt;
&lt;/ol&gt;
&lt;h2 id="loading-environment"&gt;Loading environment&lt;/h2&gt;
&lt;p&gt;Since I want to use &lt;code&gt;Python&lt;/code&gt; and &lt;code&gt;R&lt;/code&gt; from a &lt;code&gt;.Rmarkdown&lt;/code&gt; file, I first need to load &lt;code&gt;reticulate&lt;/code&gt; for this, which is a &lt;code&gt;python&lt;/code&gt; interface for &lt;code&gt;R&lt;/code&gt;. Also, since &lt;code&gt;pandas&lt;/code&gt; is not a standard library module, I need to load a python environment&lt;sup id="fnref:1"&gt;&lt;a href="#fn:1" class="footnote-ref" role="doc-noteref"&gt;1&lt;/a&gt;&lt;/sup&gt; with the required packages. &lt;code&gt;reticulate&lt;/code&gt; makes it possible to load environments created with &lt;code&gt;anaconda&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;The last step is to load some data about COVID-19 provided by &lt;code&gt;coronavirus&lt;/code&gt; package, which I will be using in this blog post.&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-r" data-lang="r"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nf"&gt;library&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;reticulate&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nf"&gt;library&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;DT&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nf"&gt;use_condaenv&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s"&gt;&amp;#39;osm_imports_preparations&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;required&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="kc"&gt;TRUE&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h2 id="loading-data"&gt;Loading data&lt;/h2&gt;
&lt;p&gt;First thing we are doing to do is to read a CSV file and turn it into a dataframe which we are going to manipulate in the next steps.&lt;/p&gt;
&lt;h3 id="r"&gt;R&lt;/h3&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-r" data-lang="r"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# We will be loading a CSV file from RamiKrispin&amp;#39;s coronavirus&amp;#39; package.&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="n"&gt;csv_url&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="s"&gt;&amp;#34;https://raw.githubusercontent.com/RamiKrispin/coronavirus/master/csv/coronavirus.csv&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# Read the CSV, convert it into a dataframe and store it in a variable.&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="n"&gt;r_df&lt;/span&gt; &lt;span class="o"&gt;&amp;lt;-&lt;/span&gt; &lt;span class="nf"&gt;read.csv&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;csv_url&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# Explore the first on the dataframe.&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nf"&gt;head&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;r_df&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="m"&gt;12&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-fallback" data-lang="fallback"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;## date province country lat long type cases
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;## 1 2020-01-22 Afghanistan 33.93911 67.70995 confirmed 0
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;## 2 2020-01-23 Afghanistan 33.93911 67.70995 confirmed 0
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;## 3 2020-01-24 Afghanistan 33.93911 67.70995 confirmed 0
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;## 4 2020-01-25 Afghanistan 33.93911 67.70995 confirmed 0
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;## 5 2020-01-26 Afghanistan 33.93911 67.70995 confirmed 0
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;## 6 2020-01-27 Afghanistan 33.93911 67.70995 confirmed 0
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;## 7 2020-01-28 Afghanistan 33.93911 67.70995 confirmed 0
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;## 8 2020-01-29 Afghanistan 33.93911 67.70995 confirmed 0
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;## 9 2020-01-30 Afghanistan 33.93911 67.70995 confirmed 0
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;## 10 2020-01-31 Afghanistan 33.93911 67.70995 confirmed 0
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;## 11 2020-02-01 Afghanistan 33.93911 67.70995 confirmed 0
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;## 12 2020-02-02 Afghanistan 33.93911 67.70995 confirmed 0
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h3 id="python"&gt;Python&lt;/h3&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-python" data-lang="python"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="nn"&gt;pandas&lt;/span&gt; &lt;span class="k"&gt;as&lt;/span&gt; &lt;span class="nn"&gt;pd&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# We will be loading a CSV file from RamiKrispin&amp;#39;s coronavirus&amp;#39; package.&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="n"&gt;csv_url&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;https://raw.githubusercontent.com/RamiKrispin/coronavirus/master/csv/coronavirus.csv&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# Read the CSV, convert it into a dataframe and store it in a variable.&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="n"&gt;py_df&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;pd&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;read_csv&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;csv_url&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# Explore the first elements on the dataframe.&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="n"&gt;py_df&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;head&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;12&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-fallback" data-lang="fallback"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;## date province country lat long type cases
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;## 0 2020-01-22 NaN Afghanistan 33.93911 67.709953 confirmed 0
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;## 1 2020-01-23 NaN Afghanistan 33.93911 67.709953 confirmed 0
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;## 2 2020-01-24 NaN Afghanistan 33.93911 67.709953 confirmed 0
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;## 3 2020-01-25 NaN Afghanistan 33.93911 67.709953 confirmed 0
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;## 4 2020-01-26 NaN Afghanistan 33.93911 67.709953 confirmed 0
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;## 5 2020-01-27 NaN Afghanistan 33.93911 67.709953 confirmed 0
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;## 6 2020-01-28 NaN Afghanistan 33.93911 67.709953 confirmed 0
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;## 7 2020-01-29 NaN Afghanistan 33.93911 67.709953 confirmed 0
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;## 8 2020-01-30 NaN Afghanistan 33.93911 67.709953 confirmed 0
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;## 9 2020-01-31 NaN Afghanistan 33.93911 67.709953 confirmed 0
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;## 10 2020-02-01 NaN Afghanistan 33.93911 67.709953 confirmed 0
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;## 11 2020-02-02 NaN Afghanistan 33.93911 67.709953 confirmed 0
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;So far, there are no significant differences between both, but note the following differences:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;code&gt;R&lt;/code&gt; works with regular &lt;strong&gt;functions&lt;/strong&gt;, whereas &lt;code&gt;python&lt;/code&gt; uses &lt;strong&gt;methods&lt;/strong&gt; instead.&lt;/li&gt;
&lt;li&gt;In order to work with dataframes in &lt;code&gt;python&lt;/code&gt;, &lt;code&gt;pandas&lt;/code&gt; module has to be imported beforehand, whereas it is a base feature from &lt;code&gt;R&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;Both commands have read the same file but, apparently, they display different data. We will need to explore further the imported data to make sure that both are what we expected and, therefore, the same.&lt;/li&gt;
&lt;/ol&gt;
&lt;h2 id="exploring-a-dataframe"&gt;Exploring a dataframe&lt;/h2&gt;
&lt;p&gt;In this step we are going to evaluate what kind of object have we created, as well as a very basic data exploration.&lt;/p&gt;
&lt;h3 id="r-1"&gt;R&lt;/h3&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-r" data-lang="r"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# Explore what kind of object r_df is.&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nf"&gt;str&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;r_df&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-gdscript3" data-lang="gdscript3"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;## &amp;#39;data.frame&amp;#39;: 218276 obs. of 7 variables:&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;## $ date : chr &amp;#34;2020-01-22&amp;#34; &amp;#34;2020-01-23&amp;#34; &amp;#34;2020-01-24&amp;#34; &amp;#34;2020-01-25&amp;#34; ...&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;## $ province: chr &amp;#34;&amp;#34; &amp;#34;&amp;#34; &amp;#34;&amp;#34; &amp;#34;&amp;#34; ...&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;## $ country : chr &amp;#34;Afghanistan&amp;#34; &amp;#34;Afghanistan&amp;#34; &amp;#34;Afghanistan&amp;#34; &amp;#34;Afghanistan&amp;#34; ...&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;## $ lat : num 33.9 33.9 33.9 33.9 33.9 ...&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;## $ long : num 67.7 67.7 67.7 67.7 67.7 ...&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;## $ type : chr &amp;#34;confirmed&amp;#34; &amp;#34;confirmed&amp;#34; &amp;#34;confirmed&amp;#34; &amp;#34;confirmed&amp;#34; ...&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;## $ cases : int 0 0 0 0 0 0 0 0 0 0 ...&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-r" data-lang="r"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# Basic statistics&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nf"&gt;summary&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;r_df&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-fallback" data-lang="fallback"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;## date province country lat
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;## Length:218276 Length:218276 Length:218276 Min. :-51.796
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;## Class :character Class :character Class :character 1st Qu.: 6.428
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;## Mode :character Mode :character Mode :character Median : 22.041
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;## Mean : 20.561
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;## 3rd Qu.: 40.182
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;## Max. : 71.707
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;## long type cases
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;## Min. :-135.00 Length:218276 Min. :-16298.0
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;## 1st Qu.: -12.89 Class :character 1st Qu.: 0.0
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;## Median : 21.75 Mode :character Median : 0.0
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;## Mean : 25.01 Mean : 331.8
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;## 3rd Qu.: 84.25 3rd Qu.: 12.0
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;## Max. : 178.06 Max. :140050.0
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-r" data-lang="r"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# Explore unique values within a variable.&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nf"&gt;levels&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nf"&gt;as.factor&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;r_df&lt;/span&gt;&lt;span class="o"&gt;$&lt;/span&gt;&lt;span class="n"&gt;date&lt;/span&gt;&lt;span class="p"&gt;))&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-fallback" data-lang="fallback"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;## [1] &amp;#34;2020-01-22&amp;#34; &amp;#34;2020-01-23&amp;#34; &amp;#34;2020-01-24&amp;#34; &amp;#34;2020-01-25&amp;#34; &amp;#34;2020-01-26&amp;#34;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;## [6] &amp;#34;2020-01-27&amp;#34; &amp;#34;2020-01-28&amp;#34; &amp;#34;2020-01-29&amp;#34; &amp;#34;2020-01-30&amp;#34; &amp;#34;2020-01-31&amp;#34;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;## [11] &amp;#34;2020-02-01&amp;#34; &amp;#34;2020-02-02&amp;#34; &amp;#34;2020-02-03&amp;#34; &amp;#34;2020-02-04&amp;#34; &amp;#34;2020-02-05&amp;#34;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;## [16] &amp;#34;2020-02-06&amp;#34; &amp;#34;2020-02-07&amp;#34; &amp;#34;2020-02-08&amp;#34; &amp;#34;2020-02-09&amp;#34; &amp;#34;2020-02-10&amp;#34;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;## [21] &amp;#34;2020-02-11&amp;#34; &amp;#34;2020-02-12&amp;#34; &amp;#34;2020-02-13&amp;#34; &amp;#34;2020-02-14&amp;#34; &amp;#34;2020-02-15&amp;#34;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;## [26] &amp;#34;2020-02-16&amp;#34; &amp;#34;2020-02-17&amp;#34; &amp;#34;2020-02-18&amp;#34; &amp;#34;2020-02-19&amp;#34; &amp;#34;2020-02-20&amp;#34;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;## [31] &amp;#34;2020-02-21&amp;#34; &amp;#34;2020-02-22&amp;#34; &amp;#34;2020-02-23&amp;#34; &amp;#34;2020-02-24&amp;#34; &amp;#34;2020-02-25&amp;#34;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;## [36] &amp;#34;2020-02-26&amp;#34; &amp;#34;2020-02-27&amp;#34; &amp;#34;2020-02-28&amp;#34; &amp;#34;2020-02-29&amp;#34; &amp;#34;2020-03-01&amp;#34;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;## [41] &amp;#34;2020-03-02&amp;#34; &amp;#34;2020-03-03&amp;#34; &amp;#34;2020-03-04&amp;#34; &amp;#34;2020-03-05&amp;#34; &amp;#34;2020-03-06&amp;#34;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;## [46] &amp;#34;2020-03-07&amp;#34; &amp;#34;2020-03-08&amp;#34; &amp;#34;2020-03-09&amp;#34; &amp;#34;2020-03-10&amp;#34; &amp;#34;2020-03-11&amp;#34;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;## [51] &amp;#34;2020-03-12&amp;#34; &amp;#34;2020-03-13&amp;#34; &amp;#34;2020-03-14&amp;#34; &amp;#34;2020-03-15&amp;#34; &amp;#34;2020-03-16&amp;#34;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;## [56] &amp;#34;2020-03-17&amp;#34; &amp;#34;2020-03-18&amp;#34; &amp;#34;2020-03-19&amp;#34; &amp;#34;2020-03-20&amp;#34; &amp;#34;2020-03-21&amp;#34;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;## [61] &amp;#34;2020-03-22&amp;#34; &amp;#34;2020-03-23&amp;#34; &amp;#34;2020-03-24&amp;#34; &amp;#34;2020-03-25&amp;#34; &amp;#34;2020-03-26&amp;#34;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;## [66] &amp;#34;2020-03-27&amp;#34; &amp;#34;2020-03-28&amp;#34; &amp;#34;2020-03-29&amp;#34; &amp;#34;2020-03-30&amp;#34; &amp;#34;2020-03-31&amp;#34;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;## [71] &amp;#34;2020-04-01&amp;#34; &amp;#34;2020-04-02&amp;#34; &amp;#34;2020-04-03&amp;#34; &amp;#34;2020-04-04&amp;#34; &amp;#34;2020-04-05&amp;#34;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;## [76] &amp;#34;2020-04-06&amp;#34; &amp;#34;2020-04-07&amp;#34; &amp;#34;2020-04-08&amp;#34; &amp;#34;2020-04-09&amp;#34; &amp;#34;2020-04-10&amp;#34;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;## [81] &amp;#34;2020-04-11&amp;#34; &amp;#34;2020-04-12&amp;#34; &amp;#34;2020-04-13&amp;#34; &amp;#34;2020-04-14&amp;#34; &amp;#34;2020-04-15&amp;#34;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;## [86] &amp;#34;2020-04-16&amp;#34; &amp;#34;2020-04-17&amp;#34; &amp;#34;2020-04-18&amp;#34; &amp;#34;2020-04-19&amp;#34; &amp;#34;2020-04-20&amp;#34;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;## [91] &amp;#34;2020-04-21&amp;#34; &amp;#34;2020-04-22&amp;#34; &amp;#34;2020-04-23&amp;#34; &amp;#34;2020-04-24&amp;#34; &amp;#34;2020-04-25&amp;#34;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;## [96] &amp;#34;2020-04-26&amp;#34; &amp;#34;2020-04-27&amp;#34; &amp;#34;2020-04-28&amp;#34; &amp;#34;2020-04-29&amp;#34; &amp;#34;2020-04-30&amp;#34;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;## [101] &amp;#34;2020-05-01&amp;#34; &amp;#34;2020-05-02&amp;#34; &amp;#34;2020-05-03&amp;#34; &amp;#34;2020-05-04&amp;#34; &amp;#34;2020-05-05&amp;#34;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;## [106] &amp;#34;2020-05-06&amp;#34; &amp;#34;2020-05-07&amp;#34; &amp;#34;2020-05-08&amp;#34; &amp;#34;2020-05-09&amp;#34; &amp;#34;2020-05-10&amp;#34;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;## [111] &amp;#34;2020-05-11&amp;#34; &amp;#34;2020-05-12&amp;#34; &amp;#34;2020-05-13&amp;#34; &amp;#34;2020-05-14&amp;#34; &amp;#34;2020-05-15&amp;#34;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;## [116] &amp;#34;2020-05-16&amp;#34; &amp;#34;2020-05-17&amp;#34; &amp;#34;2020-05-18&amp;#34; &amp;#34;2020-05-19&amp;#34; &amp;#34;2020-05-20&amp;#34;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;## [121] &amp;#34;2020-05-21&amp;#34; &amp;#34;2020-05-22&amp;#34; &amp;#34;2020-05-23&amp;#34; &amp;#34;2020-05-24&amp;#34; &amp;#34;2020-05-25&amp;#34;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;## [126] &amp;#34;2020-05-26&amp;#34; &amp;#34;2020-05-27&amp;#34; &amp;#34;2020-05-28&amp;#34; &amp;#34;2020-05-29&amp;#34; &amp;#34;2020-05-30&amp;#34;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;## [131] &amp;#34;2020-05-31&amp;#34; &amp;#34;2020-06-01&amp;#34; &amp;#34;2020-06-02&amp;#34; &amp;#34;2020-06-03&amp;#34; &amp;#34;2020-06-04&amp;#34;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;## [136] &amp;#34;2020-06-05&amp;#34; &amp;#34;2020-06-06&amp;#34; &amp;#34;2020-06-07&amp;#34; &amp;#34;2020-06-08&amp;#34; &amp;#34;2020-06-09&amp;#34;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;## [141] &amp;#34;2020-06-10&amp;#34; &amp;#34;2020-06-11&amp;#34; &amp;#34;2020-06-12&amp;#34; &amp;#34;2020-06-13&amp;#34; &amp;#34;2020-06-14&amp;#34;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;## [146] &amp;#34;2020-06-15&amp;#34; &amp;#34;2020-06-16&amp;#34; &amp;#34;2020-06-17&amp;#34; &amp;#34;2020-06-18&amp;#34; &amp;#34;2020-06-19&amp;#34;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;## [151] &amp;#34;2020-06-20&amp;#34; &amp;#34;2020-06-21&amp;#34; &amp;#34;2020-06-22&amp;#34; &amp;#34;2020-06-23&amp;#34; &amp;#34;2020-06-24&amp;#34;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;## [156] &amp;#34;2020-06-25&amp;#34; &amp;#34;2020-06-26&amp;#34; &amp;#34;2020-06-27&amp;#34; &amp;#34;2020-06-28&amp;#34; &amp;#34;2020-06-29&amp;#34;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;## [161] &amp;#34;2020-06-30&amp;#34; &amp;#34;2020-07-01&amp;#34; &amp;#34;2020-07-02&amp;#34; &amp;#34;2020-07-03&amp;#34; &amp;#34;2020-07-04&amp;#34;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;## [166] &amp;#34;2020-07-05&amp;#34; &amp;#34;2020-07-06&amp;#34; &amp;#34;2020-07-07&amp;#34; &amp;#34;2020-07-08&amp;#34; &amp;#34;2020-07-09&amp;#34;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;## [171] &amp;#34;2020-07-10&amp;#34; &amp;#34;2020-07-11&amp;#34; &amp;#34;2020-07-12&amp;#34; &amp;#34;2020-07-13&amp;#34; &amp;#34;2020-07-14&amp;#34;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;## [176] &amp;#34;2020-07-15&amp;#34; &amp;#34;2020-07-16&amp;#34; &amp;#34;2020-07-17&amp;#34; &amp;#34;2020-07-18&amp;#34; &amp;#34;2020-07-19&amp;#34;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;## [181] &amp;#34;2020-07-20&amp;#34; &amp;#34;2020-07-21&amp;#34; &amp;#34;2020-07-22&amp;#34; &amp;#34;2020-07-23&amp;#34; &amp;#34;2020-07-24&amp;#34;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;## [186] &amp;#34;2020-07-25&amp;#34; &amp;#34;2020-07-26&amp;#34; &amp;#34;2020-07-27&amp;#34; &amp;#34;2020-07-28&amp;#34; &amp;#34;2020-07-29&amp;#34;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;## [191] &amp;#34;2020-07-30&amp;#34; &amp;#34;2020-07-31&amp;#34; &amp;#34;2020-08-01&amp;#34; &amp;#34;2020-08-02&amp;#34; &amp;#34;2020-08-03&amp;#34;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;## [196] &amp;#34;2020-08-04&amp;#34; &amp;#34;2020-08-05&amp;#34; &amp;#34;2020-08-06&amp;#34; &amp;#34;2020-08-07&amp;#34; &amp;#34;2020-08-08&amp;#34;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;## [201] &amp;#34;2020-08-09&amp;#34; &amp;#34;2020-08-10&amp;#34; &amp;#34;2020-08-11&amp;#34; &amp;#34;2020-08-12&amp;#34; &amp;#34;2020-08-13&amp;#34;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;## [206] &amp;#34;2020-08-14&amp;#34; &amp;#34;2020-08-15&amp;#34; &amp;#34;2020-08-16&amp;#34; &amp;#34;2020-08-17&amp;#34; &amp;#34;2020-08-18&amp;#34;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;## [211] &amp;#34;2020-08-19&amp;#34; &amp;#34;2020-08-20&amp;#34; &amp;#34;2020-08-21&amp;#34; &amp;#34;2020-08-22&amp;#34; &amp;#34;2020-08-23&amp;#34;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;## [216] &amp;#34;2020-08-24&amp;#34; &amp;#34;2020-08-25&amp;#34; &amp;#34;2020-08-26&amp;#34; &amp;#34;2020-08-27&amp;#34; &amp;#34;2020-08-28&amp;#34;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;## [221] &amp;#34;2020-08-29&amp;#34; &amp;#34;2020-08-30&amp;#34; &amp;#34;2020-08-31&amp;#34; &amp;#34;2020-09-01&amp;#34; &amp;#34;2020-09-02&amp;#34;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;## [226] &amp;#34;2020-09-03&amp;#34; &amp;#34;2020-09-04&amp;#34; &amp;#34;2020-09-05&amp;#34; &amp;#34;2020-09-06&amp;#34; &amp;#34;2020-09-07&amp;#34;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;## [231] &amp;#34;2020-09-08&amp;#34; &amp;#34;2020-09-09&amp;#34; &amp;#34;2020-09-10&amp;#34; &amp;#34;2020-09-11&amp;#34; &amp;#34;2020-09-12&amp;#34;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;## [236] &amp;#34;2020-09-13&amp;#34; &amp;#34;2020-09-14&amp;#34; &amp;#34;2020-09-15&amp;#34; &amp;#34;2020-09-16&amp;#34; &amp;#34;2020-09-17&amp;#34;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;## [241] &amp;#34;2020-09-18&amp;#34; &amp;#34;2020-09-19&amp;#34; &amp;#34;2020-09-20&amp;#34; &amp;#34;2020-09-21&amp;#34; &amp;#34;2020-09-22&amp;#34;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;## [246] &amp;#34;2020-09-23&amp;#34; &amp;#34;2020-09-24&amp;#34; &amp;#34;2020-09-25&amp;#34; &amp;#34;2020-09-26&amp;#34; &amp;#34;2020-09-27&amp;#34;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;## [251] &amp;#34;2020-09-28&amp;#34; &amp;#34;2020-09-29&amp;#34; &amp;#34;2020-09-30&amp;#34; &amp;#34;2020-10-01&amp;#34; &amp;#34;2020-10-02&amp;#34;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;## [256] &amp;#34;2020-10-03&amp;#34; &amp;#34;2020-10-04&amp;#34; &amp;#34;2020-10-05&amp;#34; &amp;#34;2020-10-06&amp;#34; &amp;#34;2020-10-07&amp;#34;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;## [261] &amp;#34;2020-10-08&amp;#34; &amp;#34;2020-10-09&amp;#34; &amp;#34;2020-10-10&amp;#34; &amp;#34;2020-10-11&amp;#34; &amp;#34;2020-10-12&amp;#34;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;## [266] &amp;#34;2020-10-13&amp;#34; &amp;#34;2020-10-14&amp;#34; &amp;#34;2020-10-15&amp;#34; &amp;#34;2020-10-16&amp;#34; &amp;#34;2020-10-17&amp;#34;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;## [271] &amp;#34;2020-10-18&amp;#34; &amp;#34;2020-10-19&amp;#34; &amp;#34;2020-10-20&amp;#34; &amp;#34;2020-10-21&amp;#34; &amp;#34;2020-10-22&amp;#34;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;## [276] &amp;#34;2020-10-23&amp;#34; &amp;#34;2020-10-24&amp;#34;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h3 id="python-1"&gt;Python&lt;/h3&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-python" data-lang="python"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# Explore what kind of entity py_df is.&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="n"&gt;py_df&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;info&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# Now, calculate basic statistics for the numeric columns in the DataFrame.&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-fallback" data-lang="fallback"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;## &amp;lt;class &amp;#39;pandas.core.frame.DataFrame&amp;#39;&amp;gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;## RangeIndex: 218276 entries, 0 to 218275
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;## Data columns (total 7 columns):
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;## # Column Non-Null Count Dtype
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;## --- ------ -------------- -----
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;## 0 date 218276 non-null object
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;## 1 province 63433 non-null object
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;## 2 country 218276 non-null object
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;## 3 lat 218276 non-null float64
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;## 4 long 218276 non-null float64
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;## 5 type 218276 non-null object
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;## 6 cases 218276 non-null int64
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;## dtypes: float64(2), int64(1), object(4)
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;## memory usage: 11.7+ MB
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-python" data-lang="python"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="n"&gt;py_df&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;describe&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# List unique values in the df[&amp;#39;date&amp;#39;] column&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-fallback" data-lang="fallback"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;## lat long cases
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;## count 218276.000000 218276.000000 218276.000000
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;## mean 20.561062 25.011408 331.749812
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;## std 24.759252 69.572388 3045.547043
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;## min -51.796300 -135.000000 -16298.000000
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;## 25% 6.428055 -12.885800 0.000000
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;## 50% 22.041450 21.745300 0.000000
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;## 75% 40.182400 84.250000 12.000000
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;## max 71.706900 178.065000 140050.000000
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-python" data-lang="python"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="n"&gt;py_df&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;date&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;unique&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt; &lt;span class="c1"&gt;# I prefer using this notation to prevent problems with columns with a dot inside.&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-fallback" data-lang="fallback"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;## array([&amp;#39;2020-01-22&amp;#39;, &amp;#39;2020-01-23&amp;#39;, &amp;#39;2020-01-24&amp;#39;, &amp;#39;2020-01-25&amp;#39;,
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;## &amp;#39;2020-01-26&amp;#39;, &amp;#39;2020-01-27&amp;#39;, &amp;#39;2020-01-28&amp;#39;, &amp;#39;2020-01-29&amp;#39;,
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;## &amp;#39;2020-01-30&amp;#39;, &amp;#39;2020-01-31&amp;#39;, &amp;#39;2020-02-01&amp;#39;, &amp;#39;2020-02-02&amp;#39;,
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;## &amp;#39;2020-02-03&amp;#39;, &amp;#39;2020-02-04&amp;#39;, &amp;#39;2020-02-05&amp;#39;, &amp;#39;2020-02-06&amp;#39;,
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;## &amp;#39;2020-02-07&amp;#39;, &amp;#39;2020-02-08&amp;#39;, &amp;#39;2020-02-09&amp;#39;, &amp;#39;2020-02-10&amp;#39;,
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;## &amp;#39;2020-02-11&amp;#39;, &amp;#39;2020-02-12&amp;#39;, &amp;#39;2020-02-13&amp;#39;, &amp;#39;2020-02-14&amp;#39;,
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;## &amp;#39;2020-02-15&amp;#39;, &amp;#39;2020-02-16&amp;#39;, &amp;#39;2020-02-17&amp;#39;, &amp;#39;2020-02-18&amp;#39;,
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;## &amp;#39;2020-02-19&amp;#39;, &amp;#39;2020-02-20&amp;#39;, &amp;#39;2020-02-21&amp;#39;, &amp;#39;2020-02-22&amp;#39;,
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;## &amp;#39;2020-02-23&amp;#39;, &amp;#39;2020-02-24&amp;#39;, &amp;#39;2020-02-25&amp;#39;, &amp;#39;2020-02-26&amp;#39;,
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;## &amp;#39;2020-02-27&amp;#39;, &amp;#39;2020-02-28&amp;#39;, &amp;#39;2020-02-29&amp;#39;, &amp;#39;2020-03-01&amp;#39;,
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;## &amp;#39;2020-03-02&amp;#39;, &amp;#39;2020-03-03&amp;#39;, &amp;#39;2020-03-04&amp;#39;, &amp;#39;2020-03-05&amp;#39;,
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;## &amp;#39;2020-03-06&amp;#39;, &amp;#39;2020-03-07&amp;#39;, &amp;#39;2020-03-08&amp;#39;, &amp;#39;2020-03-09&amp;#39;,
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;## &amp;#39;2020-03-10&amp;#39;, &amp;#39;2020-03-11&amp;#39;, &amp;#39;2020-03-12&amp;#39;, &amp;#39;2020-03-13&amp;#39;,
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;## &amp;#39;2020-03-14&amp;#39;, &amp;#39;2020-03-15&amp;#39;, &amp;#39;2020-03-16&amp;#39;, &amp;#39;2020-03-17&amp;#39;,
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;## &amp;#39;2020-03-18&amp;#39;, &amp;#39;2020-03-19&amp;#39;, &amp;#39;2020-03-20&amp;#39;, &amp;#39;2020-03-21&amp;#39;,
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;## &amp;#39;2020-03-22&amp;#39;, &amp;#39;2020-03-23&amp;#39;, &amp;#39;2020-03-24&amp;#39;, &amp;#39;2020-03-25&amp;#39;,
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;## &amp;#39;2020-03-26&amp;#39;, &amp;#39;2020-03-27&amp;#39;, &amp;#39;2020-03-28&amp;#39;, &amp;#39;2020-03-29&amp;#39;,
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;## &amp;#39;2020-03-30&amp;#39;, &amp;#39;2020-03-31&amp;#39;, &amp;#39;2020-04-01&amp;#39;, &amp;#39;2020-04-02&amp;#39;,
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;## &amp;#39;2020-04-03&amp;#39;, &amp;#39;2020-04-04&amp;#39;, &amp;#39;2020-04-05&amp;#39;, &amp;#39;2020-04-06&amp;#39;,
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;## &amp;#39;2020-04-07&amp;#39;, &amp;#39;2020-04-08&amp;#39;, &amp;#39;2020-04-09&amp;#39;, &amp;#39;2020-04-10&amp;#39;,
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;## &amp;#39;2020-04-11&amp;#39;, &amp;#39;2020-04-12&amp;#39;, &amp;#39;2020-04-13&amp;#39;, &amp;#39;2020-04-14&amp;#39;,
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;## &amp;#39;2020-04-15&amp;#39;, &amp;#39;2020-04-16&amp;#39;, &amp;#39;2020-04-17&amp;#39;, &amp;#39;2020-04-18&amp;#39;,
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;## &amp;#39;2020-04-19&amp;#39;, &amp;#39;2020-04-20&amp;#39;, &amp;#39;2020-04-21&amp;#39;, &amp;#39;2020-04-22&amp;#39;,
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;## &amp;#39;2020-04-23&amp;#39;, &amp;#39;2020-04-24&amp;#39;, &amp;#39;2020-04-25&amp;#39;, &amp;#39;2020-04-26&amp;#39;,
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;## &amp;#39;2020-04-27&amp;#39;, &amp;#39;2020-04-28&amp;#39;, &amp;#39;2020-04-29&amp;#39;, &amp;#39;2020-04-30&amp;#39;,
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;## &amp;#39;2020-05-01&amp;#39;, &amp;#39;2020-05-02&amp;#39;, &amp;#39;2020-05-03&amp;#39;, &amp;#39;2020-05-04&amp;#39;,
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;## &amp;#39;2020-05-05&amp;#39;, &amp;#39;2020-05-06&amp;#39;, &amp;#39;2020-05-07&amp;#39;, &amp;#39;2020-05-08&amp;#39;,
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;## &amp;#39;2020-05-09&amp;#39;, &amp;#39;2020-05-10&amp;#39;, &amp;#39;2020-05-11&amp;#39;, &amp;#39;2020-05-12&amp;#39;,
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;## &amp;#39;2020-05-13&amp;#39;, &amp;#39;2020-05-14&amp;#39;, &amp;#39;2020-05-15&amp;#39;, &amp;#39;2020-05-16&amp;#39;,
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;## &amp;#39;2020-05-17&amp;#39;, &amp;#39;2020-05-18&amp;#39;, &amp;#39;2020-05-19&amp;#39;, &amp;#39;2020-05-20&amp;#39;,
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;## &amp;#39;2020-05-21&amp;#39;, &amp;#39;2020-05-22&amp;#39;, &amp;#39;2020-05-23&amp;#39;, &amp;#39;2020-05-24&amp;#39;,
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;## &amp;#39;2020-05-25&amp;#39;, &amp;#39;2020-05-26&amp;#39;, &amp;#39;2020-05-27&amp;#39;, &amp;#39;2020-05-28&amp;#39;,
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;## &amp;#39;2020-05-29&amp;#39;, &amp;#39;2020-05-30&amp;#39;, &amp;#39;2020-05-31&amp;#39;, &amp;#39;2020-06-01&amp;#39;,
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;## &amp;#39;2020-06-02&amp;#39;, &amp;#39;2020-06-03&amp;#39;, &amp;#39;2020-06-04&amp;#39;, &amp;#39;2020-06-05&amp;#39;,
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;## &amp;#39;2020-06-06&amp;#39;, &amp;#39;2020-06-07&amp;#39;, &amp;#39;2020-06-08&amp;#39;, &amp;#39;2020-06-09&amp;#39;,
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;## &amp;#39;2020-06-10&amp;#39;, &amp;#39;2020-06-11&amp;#39;, &amp;#39;2020-06-12&amp;#39;, &amp;#39;2020-06-13&amp;#39;,
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;## &amp;#39;2020-06-14&amp;#39;, &amp;#39;2020-06-15&amp;#39;, &amp;#39;2020-06-16&amp;#39;, &amp;#39;2020-06-17&amp;#39;,
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;## &amp;#39;2020-06-18&amp;#39;, &amp;#39;2020-06-19&amp;#39;, &amp;#39;2020-06-20&amp;#39;, &amp;#39;2020-06-21&amp;#39;,
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;## &amp;#39;2020-06-22&amp;#39;, &amp;#39;2020-06-23&amp;#39;, &amp;#39;2020-06-24&amp;#39;, &amp;#39;2020-06-25&amp;#39;,
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;## &amp;#39;2020-06-26&amp;#39;, &amp;#39;2020-06-27&amp;#39;, &amp;#39;2020-06-28&amp;#39;, &amp;#39;2020-06-29&amp;#39;,
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;## &amp;#39;2020-06-30&amp;#39;, &amp;#39;2020-07-01&amp;#39;, &amp;#39;2020-07-02&amp;#39;, &amp;#39;2020-07-03&amp;#39;,
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;## &amp;#39;2020-07-04&amp;#39;, &amp;#39;2020-07-05&amp;#39;, &amp;#39;2020-07-06&amp;#39;, &amp;#39;2020-07-07&amp;#39;,
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;## &amp;#39;2020-07-08&amp;#39;, &amp;#39;2020-07-09&amp;#39;, &amp;#39;2020-07-10&amp;#39;, &amp;#39;2020-07-11&amp;#39;,
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;## &amp;#39;2020-07-12&amp;#39;, &amp;#39;2020-07-13&amp;#39;, &amp;#39;2020-07-14&amp;#39;, &amp;#39;2020-07-15&amp;#39;,
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;## &amp;#39;2020-07-16&amp;#39;, &amp;#39;2020-07-17&amp;#39;, &amp;#39;2020-07-18&amp;#39;, &amp;#39;2020-07-19&amp;#39;,
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;## &amp;#39;2020-07-20&amp;#39;, &amp;#39;2020-07-21&amp;#39;, &amp;#39;2020-07-22&amp;#39;, &amp;#39;2020-07-23&amp;#39;,
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;## &amp;#39;2020-07-24&amp;#39;, &amp;#39;2020-07-25&amp;#39;, &amp;#39;2020-07-26&amp;#39;, &amp;#39;2020-07-27&amp;#39;,
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;## &amp;#39;2020-07-28&amp;#39;, &amp;#39;2020-07-29&amp;#39;, &amp;#39;2020-07-30&amp;#39;, &amp;#39;2020-07-31&amp;#39;,
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;## &amp;#39;2020-08-01&amp;#39;, &amp;#39;2020-08-02&amp;#39;, &amp;#39;2020-08-03&amp;#39;, &amp;#39;2020-08-04&amp;#39;,
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;## &amp;#39;2020-08-05&amp;#39;, &amp;#39;2020-08-06&amp;#39;, &amp;#39;2020-08-07&amp;#39;, &amp;#39;2020-08-08&amp;#39;,
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;## &amp;#39;2020-08-09&amp;#39;, &amp;#39;2020-08-10&amp;#39;, &amp;#39;2020-08-11&amp;#39;, &amp;#39;2020-08-12&amp;#39;,
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;## &amp;#39;2020-08-13&amp;#39;, &amp;#39;2020-08-14&amp;#39;, &amp;#39;2020-08-15&amp;#39;, &amp;#39;2020-08-16&amp;#39;,
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;## &amp;#39;2020-08-17&amp;#39;, &amp;#39;2020-08-18&amp;#39;, &amp;#39;2020-08-19&amp;#39;, &amp;#39;2020-08-20&amp;#39;,
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;## &amp;#39;2020-08-21&amp;#39;, &amp;#39;2020-08-22&amp;#39;, &amp;#39;2020-08-23&amp;#39;, &amp;#39;2020-08-24&amp;#39;,
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;## &amp;#39;2020-08-25&amp;#39;, &amp;#39;2020-08-26&amp;#39;, &amp;#39;2020-08-27&amp;#39;, &amp;#39;2020-08-28&amp;#39;,
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;## &amp;#39;2020-08-29&amp;#39;, &amp;#39;2020-08-30&amp;#39;, &amp;#39;2020-08-31&amp;#39;, &amp;#39;2020-09-01&amp;#39;,
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;## &amp;#39;2020-09-02&amp;#39;, &amp;#39;2020-09-03&amp;#39;, &amp;#39;2020-09-04&amp;#39;, &amp;#39;2020-09-05&amp;#39;,
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;## &amp;#39;2020-09-06&amp;#39;, &amp;#39;2020-09-07&amp;#39;, &amp;#39;2020-09-08&amp;#39;, &amp;#39;2020-09-09&amp;#39;,
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;## &amp;#39;2020-09-10&amp;#39;, &amp;#39;2020-09-11&amp;#39;, &amp;#39;2020-09-12&amp;#39;, &amp;#39;2020-09-13&amp;#39;,
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;## &amp;#39;2020-09-14&amp;#39;, &amp;#39;2020-09-15&amp;#39;, &amp;#39;2020-09-16&amp;#39;, &amp;#39;2020-09-17&amp;#39;,
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;## &amp;#39;2020-09-18&amp;#39;, &amp;#39;2020-09-19&amp;#39;, &amp;#39;2020-09-20&amp;#39;, &amp;#39;2020-09-21&amp;#39;,
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;## &amp;#39;2020-09-22&amp;#39;, &amp;#39;2020-09-23&amp;#39;, &amp;#39;2020-09-24&amp;#39;, &amp;#39;2020-09-25&amp;#39;,
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;## &amp;#39;2020-09-26&amp;#39;, &amp;#39;2020-09-27&amp;#39;, &amp;#39;2020-09-28&amp;#39;, &amp;#39;2020-09-29&amp;#39;,
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;## &amp;#39;2020-09-30&amp;#39;, &amp;#39;2020-10-01&amp;#39;, &amp;#39;2020-10-02&amp;#39;, &amp;#39;2020-10-03&amp;#39;,
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;## &amp;#39;2020-10-04&amp;#39;, &amp;#39;2020-10-05&amp;#39;, &amp;#39;2020-10-06&amp;#39;, &amp;#39;2020-10-07&amp;#39;,
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;## &amp;#39;2020-10-08&amp;#39;, &amp;#39;2020-10-09&amp;#39;, &amp;#39;2020-10-10&amp;#39;, &amp;#39;2020-10-11&amp;#39;,
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;## &amp;#39;2020-10-12&amp;#39;, &amp;#39;2020-10-13&amp;#39;, &amp;#39;2020-10-14&amp;#39;, &amp;#39;2020-10-15&amp;#39;,
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;## &amp;#39;2020-10-16&amp;#39;, &amp;#39;2020-10-17&amp;#39;, &amp;#39;2020-10-18&amp;#39;, &amp;#39;2020-10-19&amp;#39;,
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;## &amp;#39;2020-10-20&amp;#39;, &amp;#39;2020-10-21&amp;#39;, &amp;#39;2020-10-22&amp;#39;, &amp;#39;2020-10-23&amp;#39;,
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;## &amp;#39;2020-10-24&amp;#39;], dtype=object)
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;There are no significant differences, nor in the syntax nor in the ouput.&lt;/p&gt;
&lt;p&gt;Note:&lt;/p&gt;
&lt;p&gt;We prefer to use this notation in order to prevent problems with columns with a dot inside.&lt;/p&gt;
&lt;h2 id="sorting-dataframe"&gt;Sorting dataframe&lt;/h2&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-r" data-lang="r"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nf"&gt;library&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;tidyverse&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-fallback" data-lang="fallback"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;## ── Attaching packages ─────────────────────────────────────── tidyverse 1.3.0 ──
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-fallback" data-lang="fallback"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;## ✓ ggplot2 3.3.2 ✓ purrr 0.3.4
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;## ✓ tibble 3.0.4 ✓ dplyr 1.0.2
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;## ✓ tidyr 1.1.2 ✓ stringr 1.4.0
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;## ✓ readr 1.3.1 ✓ forcats 0.5.0
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-fallback" data-lang="fallback"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;## ── Conflicts ────────────────────────────────────────── tidyverse_conflicts() ──
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;## x dplyr::filter() masks stats::filter()
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;## x dplyr::lag() masks stats::lag()
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-r" data-lang="r"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nf"&gt;head&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nf"&gt;arrange&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;r_df&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;country&lt;/span&gt;&lt;span class="p"&gt;))&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-fallback" data-lang="fallback"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;## date province country lat long type cases
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;## 1 2020-01-22 Afghanistan 33.93911 67.70995 confirmed 0
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;## 2 2020-01-23 Afghanistan 33.93911 67.70995 confirmed 0
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;## 3 2020-01-24 Afghanistan 33.93911 67.70995 confirmed 0
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;## 4 2020-01-25 Afghanistan 33.93911 67.70995 confirmed 0
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;## 5 2020-01-26 Afghanistan 33.93911 67.70995 confirmed 0
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;## 6 2020-01-27 Afghanistan 33.93911 67.70995 confirmed 0
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-python" data-lang="python"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="n"&gt;py_df&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;sort_values&lt;/span&gt;&lt;span class="p"&gt;([&lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;country&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;])&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;head&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-fallback" data-lang="fallback"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;## date province country lat long type cases
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;## 0 2020-01-22 NaN Afghanistan 33.93911 67.709953 confirmed 0
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;## 147922 2020-01-26 NaN Afghanistan 33.93911 67.709953 recovered 0
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;## 147921 2020-01-25 NaN Afghanistan 33.93911 67.709953 recovered 0
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;## 147920 2020-01-24 NaN Afghanistan 33.93911 67.709953 recovered 0
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;## 147919 2020-01-23 NaN Afghanistan 33.93911 67.709953 recovered 0
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h2 id="select-and-summarise"&gt;Select and summarise&lt;/h2&gt;
&lt;p&gt;Let&amp;rsquo;s pretend that we want to have a table displaying the top 10 countries with the most number of confirmed cases until today (2020-10-25).&lt;/p&gt;
&lt;h3 id="r-2"&gt;R&lt;/h3&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-r" data-lang="r"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="n"&gt;r_df&lt;/span&gt; &lt;span class="o"&gt;%&amp;gt;%&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="c1"&gt;# select(Country.Region, cases, type) %&amp;gt;% &lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nf"&gt;filter&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;type&lt;/span&gt; &lt;span class="o"&gt;==&lt;/span&gt; &lt;span class="s"&gt;&amp;#34;confirmed&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="o"&gt;%&amp;gt;%&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nf"&gt;group_by&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;country&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="o"&gt;%&amp;gt;%&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nf"&gt;summarise&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;total&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nf"&gt;sum&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;cases&lt;/span&gt;&lt;span class="p"&gt;))&lt;/span&gt; &lt;span class="o"&gt;%&amp;gt;%&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nf"&gt;arrange&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nf"&gt;desc&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;total&lt;/span&gt;&lt;span class="p"&gt;))&lt;/span&gt; &lt;span class="o"&gt;%&amp;gt;%&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nf"&gt;head&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="m"&gt;5&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-fallback" data-lang="fallback"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;## # A tibble: 5 x 2
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;## country total
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;## &amp;lt;chr&amp;gt; &amp;lt;int&amp;gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;## 1 US 8575177
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;## 2 India 7814682
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;## 3 Brazil 5380635
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;## 4 Russia 1487260
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;## 5 France 1084659
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-r" data-lang="r"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# Or, even more succintly:&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="n"&gt;r_df&lt;/span&gt; &lt;span class="o"&gt;%&amp;gt;%&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nf"&gt;filter&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;type&lt;/span&gt; &lt;span class="o"&gt;==&lt;/span&gt; &lt;span class="s"&gt;&amp;#34;confirmed&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="o"&gt;%&amp;gt;%&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nf"&gt;count&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;country&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;wt&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;cases&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;sort&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="kc"&gt;TRUE&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;name&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="s"&gt;&amp;#34;total&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="o"&gt;%&amp;gt;%&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nf"&gt;head&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="m"&gt;5&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-fallback" data-lang="fallback"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;## country total
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;## 1 US 8575177
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;## 2 India 7814682
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;## 3 Brazil 5380635
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;## 4 Russia 1487260
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;## 5 France 1084659
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h3 id="python-2"&gt;Python&lt;/h3&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-python" data-lang="python"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="n"&gt;py_df&lt;/span&gt;&lt;span class="o"&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;py_df&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;type&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt; &lt;span class="o"&gt;==&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;confirmed&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;groupby&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;country&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;agg&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;cases&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;sum&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;rename&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;columns&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;cases&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;total&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;})&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;sort_values&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;total&amp;#39;&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="kc"&gt;False&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;head&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;5&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-fallback" data-lang="fallback"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;## total
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;## country
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;## US 8575177
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;## India 7814682
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;## Brazil 5380635
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;## Russia 1487260
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;## France 1084659
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;This is something funny. &lt;code&gt;python&lt;/code&gt; takes pride in stating that is an elegant and easy to read syntax due to its strict indentation syntax. On the other hand, I have met several &lt;code&gt;python&lt;/code&gt; proponents mocking about &lt;code&gt;R&lt;/code&gt;&amp;rsquo;s code to be quite obscure and difficult to memorise. While I often share the same views (especially when dealing with base &lt;code&gt;R&lt;/code&gt;&amp;rsquo;s syntax), I particularly find &lt;code&gt;tidypverse&lt;/code&gt;&amp;rsquo;s syntax far easier to read and memorise than &lt;code&gt;pandas&lt;/code&gt;&amp;rsquo; . While the first makes use of the pipe operator ( &lt;code&gt;%&amp;gt;%&lt;/code&gt;) to chain commands while preventing typing unnecessary data, the latter requires to concatenate up to six different methods in a single line, which becomes too long to read (and thus, not liked very much by
)&lt;/p&gt;
&lt;h2 id="joins-and-calculations"&gt;Joins and calculations&lt;/h2&gt;
&lt;p&gt;But that&amp;rsquo;s not fair, we are comparing countries with very different number of population! If we are to compare them, we need to use relative values. For example, we would need to create a ranking based on the total number of cases per 1000 habitants.&lt;/p&gt;
&lt;p&gt;In order to do so, we will need to do the following steps:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Load a dataframe with population data per each country&lt;/li&gt;
&lt;li&gt;Add the population data by join our existing dataframes with the newly created one in the previous step (left join)&lt;/li&gt;
&lt;li&gt;Calculate relative number of confirmed cases like this: &lt;code&gt;\(confirmed~rel = \frac{confirmed}{population}\)&lt;/code&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;h3 id="r-3"&gt;R&lt;/h3&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-r" data-lang="r"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# Load population data.&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="n"&gt;countries19&lt;/span&gt; &lt;span class="o"&gt;&amp;lt;-&lt;/span&gt; &lt;span class="nf"&gt;read.csv&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s"&gt;&amp;#34;data/countries_pop19.csv&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="n"&gt;r_df&lt;/span&gt; &lt;span class="o"&gt;%&amp;gt;%&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nf"&gt;filter&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;type&lt;/span&gt; &lt;span class="o"&gt;==&lt;/span&gt; &lt;span class="s"&gt;&amp;#34;confirmed&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="o"&gt;%&amp;gt;%&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nf"&gt;count&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;country&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;wt&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;cases&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;sort&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="kc"&gt;TRUE&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;name&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="s"&gt;&amp;#34;confirmed&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="o"&gt;%&amp;gt;%&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="c1"&gt;# Add population column.&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nf"&gt;left_join&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;countries19&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="nf"&gt;c&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s"&gt;&amp;#34;country&amp;#34;&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="s"&gt;&amp;#34;Location&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;))&lt;/span&gt; &lt;span class="o"&gt;%&amp;gt;%&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="c1"&gt;# Calculate relative cases.&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nf"&gt;mutate&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;confirmed_rel&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;confirmed&lt;/span&gt; &lt;span class="o"&gt;/&lt;/span&gt; &lt;span class="n"&gt;PopTotal&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="o"&gt;%&amp;gt;%&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="c1"&gt;# Select certain columns only.&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nf"&gt;select&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;country&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;confirmed&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;confirmed_rel&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="o"&gt;%&amp;gt;%&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="c1"&gt;# Sort by confirmed_rel on descending order.&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nf"&gt;arrange&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nf"&gt;desc&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;confirmed_rel&lt;/span&gt;&lt;span class="p"&gt;))&lt;/span&gt; &lt;span class="o"&gt;%&amp;gt;%&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="c1"&gt;# Display everything on a nice datatable.&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nf"&gt;head&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="m"&gt;10&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-fallback" data-lang="fallback"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;## country confirmed confirmed_rel
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;## 1 Andorra 4038 52.34231
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;## 2 Bahrain 79975 48.73066
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;## 3 Qatar 130965 46.24354
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;## 4 Israel 309413 36.31875
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;## 5 Holy See 27 33.12883
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;## 6 Panama 128515 30.26417
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;## 7 Kuwait 120927 28.74371
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;## 8 Peru 883116 27.16406
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;## 9 Montenegro 16629 26.47981
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;## 10 Belgium 305409 26.46680
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h3 id="python-3"&gt;Python&lt;/h3&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-python" data-lang="python"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# Load population data.&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="n"&gt;countries19&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;pd&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;read_csv&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;data/countries_pop19.csv&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="n"&gt;py_confirmed_rel&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;py_df&lt;/span&gt;&lt;span class="o"&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;py_df&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;type&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt; &lt;span class="o"&gt;==&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;confirmed&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;groupby&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;country&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;agg&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;cases&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;sum&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;rename&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;columns&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;cases&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;confirmed&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;})&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# Join population information.&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="n"&gt;py_confirmed_rel&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;py_confirmed_rel&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;join&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;countries19&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;set_index&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;Location&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;),&lt;/span&gt; &lt;span class="n"&gt;on&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;country&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# Calculate relative confirmed cases.&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="n"&gt;py_confirmed_rel&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;py_confirmed_rel&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;assign&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;confirmed_rel&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;py_confirmed_rel&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;confirmed&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;py_confirmed_rel&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;PopTotal&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;])&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="n"&gt;py_confirmed_rel&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;py_confirmed_rel&lt;/span&gt;&lt;span class="p"&gt;[[&lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;confirmed&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;confirmed_rel&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;]]&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="n"&gt;py_confirmed_rel&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;sort_values&lt;/span&gt;&lt;span class="p"&gt;([&lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;confirmed_rel&amp;#39;&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="kc"&gt;False&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;head&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;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-fallback" data-lang="fallback"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;## confirmed confirmed_rel
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;## country
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;## Andorra 4038 52.342312
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;## Bahrain 79975 48.730657
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;## Qatar 130965 46.243544
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;## Israel 309413 36.318753
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;## Holy See 27 33.128834
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;## Panama 128515 30.264174
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;## Kuwait 120927 28.743710
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;## Peru 883116 27.164056
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;## Montenegro 16629 26.479805
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;## Belgium 305409 26.466797
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h2 id="conclusion"&gt;Conclusion&lt;/h2&gt;
&lt;p&gt;Before concluding, I have to admit that I have been using &lt;code&gt;tidyverse&lt;/code&gt; for several years, and I am very used to its syntax. Therefore, it is no wonder that I feel much more comfortable with it than with &lt;code&gt;pandas&lt;/code&gt;&amp;rsquo; . Being said that, I find the latter to be quite straightforward and relatively easy to use and memorise (I will need to check this post and
for reference). However, I have two main concerns about pandas:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Compared to &lt;code&gt;R&lt;/code&gt;, which is more succinct, pandas requires to type many times the data frame&amp;rsquo;s name. This makes it more prone-error and slow to type, but also more difficult to read. If you want to avoid typing it as much, you need to chain a number of methods that result in very long lines, which makes it difficult to comment and it is, again, more difficult to read.&lt;/li&gt;
&lt;li&gt;I find it somewhat overwhelming that there are many ways to perform same task in &lt;code&gt;pandas&lt;/code&gt;. I believe Ted Petrou&amp;rsquo;s advice on learning the
is a good advice, as it makes things simpler.&lt;/li&gt;
&lt;li&gt;I miss the magritte&amp;rsquo;s pipe operator, but I guess I should change my mindset when using python.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Regarding &lt;code&gt;reticulate&lt;/code&gt;: I think it is very promising. While &lt;code&gt;jupyter notebooks&lt;/code&gt; can be used with different kernels such as &lt;code&gt;Julia&lt;/code&gt;, &lt;code&gt;python&lt;/code&gt; or &lt;code&gt;R&lt;/code&gt; (hence its name), there is no way to combine different kernels in the same notebook, at least that I am aware of. This means that only one language per notebook can be used. On the other hand, reticulate allows you to use different languages within the same document (a markdown file, which I prefer it over jupyter notebooks, by the way). Admittedly, I do not know if that is a common scenario, but it has proven to be very useful for a post like this one.&lt;/p&gt;
&lt;p&gt;Being said that, I admit that I expected that I could use one variable from &lt;code&gt;python&lt;/code&gt; and use it in &lt;code&gt;R&lt;/code&gt;, if that makes any sense at all. However, that&amp;rsquo;s not possible, as both languages are isolated, which I assume is the logical way (I assume is not straightforward at all to convert from one &lt;code&gt;python&lt;/code&gt; &lt;code&gt;list&lt;/code&gt; to an &lt;code&gt;R&lt;/code&gt; &lt;code&gt;vector&lt;/code&gt;, for example).&lt;/p&gt;
&lt;div class="footnotes" role="doc-endnotes"&gt;
&lt;hr&gt;
&lt;ol&gt;
&lt;li id="fn:1"&gt;
&lt;p&gt;If there is something that I have fallen in love with &lt;code&gt;python&lt;/code&gt; so far is how convenient and easy are to create virtual environments from a simple &lt;code&gt;yaml&lt;/code&gt; file listing all the dependencies. This is something that would be very useful in &lt;code&gt;R&lt;/code&gt;, too and I should explore in the future: I know &lt;code&gt;packrat&lt;/code&gt; is there for this purpose, but it is not as fast and easy to deal with as &lt;code&gt;conda&lt;/code&gt; environments. On the other hand, if I am not mistaken, &lt;code&gt;conda&lt;/code&gt; also has &lt;code&gt;R&lt;/code&gt; libraries, so it may be possible to create conda environments for R, too.&amp;#160;&lt;a href="#fnref:1" class="footnote-backref" role="doc-backlink"&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;/div&gt;</description></item></channel></rss>