Zadluženost obcí

Aktualizováno: 20. 8. 2020 Zdrojový kód: GitHub

Upozornění: Tento dokument slouží jako příklad práce s otevřenými daty a nepředstavuje oficiální stanovisko Ministerstva financí.

Úvod

V tomto dokumentu se pokusíme prezentovat data z Monitoru státní pokladny, ve kterém nalezneme mimo jiné účetní data obcí, díky nimž můžeme získat jistý vhled do problematiky jejich zadluženosti. Pro srovnání jsme využili ukazatel celkové zadluženosti v roce 2019, tedy podíl cizích zdrojů na celkových aktivech obce. Pro závěrečnou ilustraci částek pak položku rozvahy "dlouhodobé závazky".

Upozorňujeme, že se jedná pouze o ukázku práce s daty, nikoliv o komplexní analýzu a nelze tedy z tohoto dokumentu dělat závěry o zadluženosti obcí.

V této ukázce jsme si práci trochu usnadnili a data zpracovali s využitím naší databáze, která data zpracovává do podoby tabulek automaticky. Na to, jak exporty ve formátu XML zpracovat ručně, se podíváme v jiném článku.

In [1]:
import pandas as pd
data_ratios = pd.read_json("https://opendata.mfcr.cz/api/stories/zadluzenost_pomer")
data_hist = pd.read_json("https://opendata.mfcr.cz/api/stories/zadluzenost_histogram")

Nejzadluženější obce

Dle vybrané metriky jsou nejvíce zadlužené obce tyto:

In [2]:
view = pd.DataFrame(data_ratios).sort_values(by='ratio', ascending=False).rename({"ucjed_nazev":"Obec"},axis=1)
pomer_format = view['ratio'].apply(lambda x: '{0:.1f}'.format(x*100)+"%")
view["Míra celkové zadluženosti"] = pomer_format
view.drop("ratio",axis=1).head(10)
Out[2]:
Obec Míra celkové zadluženosti
3090 Obec Turovice 808.9%
5888 Obec Prameny 431.0%
3721 Obec Olešnice 79.8%
3578 Obec Koruna 73.0%
3657 Obec Čestice 71.2%
625 Obec Strýčice 71.0%
79 Obec Podsedice 68.4%
763 Městys Panenský Týnec 58.4%
2446 Obec Doubek 56.4%
4847 Obec Naloučany 55.2%

Rozdělení obcí dle zadlužení:

Mimo obce nejzadluženější se podíváme ještě na to, jak si vedou obce celkově. Následující histogram ukazuje, v jakých řádech se pohybují dlouhodobé závazky obcí. Pro každý řád ukazuje výše sloupce počet obcí, které do takové kategorie spadají. Jak vidíme, značné množství obcí nalezneme již v první skupině, tedy v oblasti nulového dlouhodobého zadlužení.

In [3]:
def format_sup(x):
  how = str.maketrans("0123456789", "⁰¹²³⁴⁵⁶⁷⁸⁹")
  if(x==0):
      return 1
  else:
      return "10"+str(x).translate(how)

labels = list(data_hist["bucket"].apply(format_sup))
values = list(data_hist["count"])
In [4]:
from iplotter import ChartJSPlotter
plotter = ChartJSPlotter()
chart = {"labels": labels,"datasets": [{"label":"Počet obcí","data": values, "backgroundColor":"#0099ff"}]}      
plotter.plot(chart,chart_type="bar",options=None)
C:\Users\tomvi\Anaconda3\lib\site-packages\IPython\core\display.py:694: UserWarning: Consider using IPython.display.IFrame instead
warnings.warn("Consider using IPython.display.IFrame instead")
Out[4]: