<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xml" href="/cjs/screen.xsl" media="screen"?>
<lecture>

<meta>
  <maintitle>Python</maintitle>
  <author>Jiří Znamenáček</author>
  <title>Pandas – Meteorologická pozorování v Klementinu</title>
  <date>2025-06-12</date>
  <link><!--a href="http://vyuka.ookami.cz" rel="external">http://vyuka.ookami.cz</a--></link>
  <!--
  <style>
    /* CSSka */
  </style>
  <use-math/>
  <use-x3dom/>
  -->
</meta>
<!--
  „“–…
  ←→ ↑↓ ↔↕
  ↵ aneb &#x21B5; aneb \r aneb CR aneb CarriageReturn
-->


<slide title="Úvod">

    <p>
        Jak <a href="overview.xml?slajd=12">už jsem předesílal</a>, knihovna <em>Pandas</em> je ještě výrazně specializovanější než <em>Numpy</em>, takže se lépe ukazuje na konkrétních příkladech.
    </p>
    <p>
        Tato přednáška se inspirovala obdobnou z kurzu Pythonu na FITu z roku 2019 a bude se tudíž věnovat zpracování <a href="https://www.chmi.cz/historicka-data/pocasi/praha-klementinum" class="external">meteorologických pozorování z pražského Klementina</a>. Ta jsou unikátní tím, že průměrnou denní teplotu a extrémy teploty vzduchu zaznamenávají nejméně třikrát denně prakticky již od roku 1775 (a od roku 1804 i denní úhrn srážek), takže i přes výrazné zkreslení dat dané umístěním stanice v centru města se jedná o velmi dlouhou a zajímavou sadu čísel.
    </p>
    <note>
        PS: Data pro přednášku získána 12. června 2025, takže končí rokem 2023.
    </note>

</slide>
<slide title="Načtení dat z Excelu">

    <p>
        Data jsou poskytována jako excelový soubor o čtyřech listech, přičemž pro nás zajímavé číselné řady se nachází na třetím listu se jménem <code>data</code> a je jich více jak devadesát tisíc řádek. Pokud nemáte doinstalované doplňky na práci se soubory Excelu, <em>Pandas</em> vám to oznámí po prvním spuštění následujícího skriptu:
    </p>
    <example layout="vertical">
        <program src="_files/Klementinum/01.py" lang="python"/>
        <out src="_files/Klementinum/01.out" lang="text"/>
    </example>
    <note>
        <em>T-AVG</em>, <em>TMA</em>, <em>TMI</em> a <em>SRA</em> jsou postupně zjevně průměrná denní teplota, maximální a minimální teplota daného dne plus úhrnné srážky za příslušný den. Význam sloupce <em>Flag</em> se mi nepodařilo dohledat (vesměs bývá prázdný, občas je v něm písmeno <code>T</code>, jak si můžete snadno ověřit kódem <code>df['Flag'].unique()</code>).
    </note>
    <p>
        PS: Metoda <code>describe()</code> zjevně napočítá vybrané souhrnné statistické charakteristiky pro každý číselný sloupeček (tedy pandí <em>Series</em>), což zjevně ne vždy je úplně smysluplné (viz především sloupec <em>měsíc</em>).
    </p>

</slide>
<slide title="">

    <p>
    </p>
    <example lang="python">
    </example>
    <p>
    </p>
    <example lang="python">
    </example>
    <p>
    </p>

</slide>
<slide title="">

    <p>
    </p>
    <example lang="python">
    </example>
    <p>
    </p>
    <example lang="python">
    </example>
    <p>
    </p>

</slide>
<slide title="">

    <p>
    </p>
    <example lang="python">
    </example>
    <p>
    </p>
    <example lang="python">
    </example>
    <p>
    </p>

</slide>
<slide title="">

    <p>
    </p>
    <example lang="python">
    </example>
    <p>
    </p>
    <example lang="python">
    </example>
    <p>
    </p>

</slide>


</lecture>
