# Blog

A blog of Python-related topics and code.

## What happens to carbon dioxide dissolved in water?

Carbon dioxide ($\mathrm{CO_2}$) dissolves in water, and some of the dissolved $\mathrm{CO_2}$ forms carbonic acid, $\mathrm{H_2CO_3(aq)}$: $$\mathrm{CO_2(g)} + \mathrm{H_2O(l)} \rightleftharpoons \mathrm{H_2CO_3(aq)}.$$ This acid can then dissociate to form bicarbonate, $\mathrm{HCO_3^-}$: $$K_1: \mathrm{H_2CO_3(aq)} \rightleftharpoons \mathrm{HCO_3^-(aq)} + \mathrm{H^+(aq)},$$ which may further dissociate to carbonate, $\mathrm{CO_3^{2-}}$: $$K_2: \mathrm{HCO_3^-(aq)} \rightleftharpoons \mathrm{CO_3^{2-}(aq)} + \mathrm{H^+(aq)}.$$

## The world's nuclear reactors over time

The Python program given below generates this stacked area plot of the number of nuclear reactors in different countries over the last six decades or so.

## The Duffing Oscillator

The previous blog post described the motion of a quartic oscillator: a particle moving in the potential $V(x) = \frac{1}{4}x^4 - \frac{1}{2}x^2$. In this case, the motion was always periodic (since the particle's energy is conserved).

## Scraping a Wikipedia table with Pandas

In my previous post I gave a short script for scraping a particular Wikipedia page for some string-based data in one table. Then the internet had some advice for me. Use pandas.read_html they said. It will be easy, they said; everything will be handled for you, they said. Just clean, analyse and report.