Nebeneinkünfte von Lokalpolitiker:innen#

Wir analysieren die Nebeneinkünfte von Landrät:innen in Rheinlandpfalz basierend auf den Daten und der Recherche von Correctiv

Die folgenden theoretischen Grundlagen werden dabei besprochen und geübt:

  • Dictionaries

  • Listen

  • For-Schleifen

  • While-Schleifen

  • Flow Control

Correctiv Recherche

Beispieldaten#

Ein Einblick in die Nebeneinkünfte im Jahr 2020 von Manfred Schur (CDU), Landrat von Cochem-Zell.

arbeitgeber = ['Altlastenzweckverband Tierische Nebenprodukte', 'Zweckverband Tierische Nebenprodukte Südwest', '(Zweckverband) Sparkasse Mittelmosel - Eifel Mosel Hunsrück', 'Sparkassenverband RP', 'RWE', 'Planungsgemeinschaft Mittelrhein-Westerwald', 'Westenergie', 'Abfallzweckverband Rhein-Mosel-Eifel', 'Rheinische Zusatzversorgungskasse', 'Agentur für Arbeit']
verdienst = [8073, 8073, 6038, 5575, 5200, 2195, 2000, 600, 194, 26]

Überblick:#

  1. Wie viel Geld verdient Manfred Schur an Nebeneinkünften insgesamt?

  2. Wie viel Geld erhält Manfred Schur von RWE?

# 1.
# 2.

Daten als Dictionary#

nebeneinkünfte = {'Altlastenzweckverband Tierische Nebenprodukte': 8073,
                  'Zweckverband Tierische Nebenprodukte Südwest': 8073,
                  '(Zweckverband) Sparkasse Mittelmosel - Eifel Mosel Hunsrück': 6038,
                  'Sparkassenverband RP': 5575,
                  'RWE': 5200,
                  'Planungsgemeinschaft Mittelrhein-Westerwald': 2195,
                  'Westenergie': 2000,
                  'Abfallzweckverband Rhein-Mosel-Eifel': 600,
                  'Rheinische Zusatzversorgungskasse': 194,
                  'Agentur für Arbeit': 26}

Überblick:#

  1. Wie viel Geld verdient Manfred Schur an Nebeneinkünften insgesamt?

  2. Wie viel Geld erhält Manfred Schur von RWE?

# 1. Wie viel Geld verdient Manfred Schur an Nebeneinkünften insgesamt?
# 2. Wie viel Geld erhält Manfred Schur von RWE

Verschachtelte Dictionaries ….#

data_cochemzell = {
                    'landrat': 'Manfred Schur',
                    'partei': 'CDU',
                    'nebeneinkünfte': {'Altlastenzweckverband Tierische Nebenprodukte': 8073,
                                      'Zweckverband Tierische Nebenprodukte Südwest': 8073,
                                      '(Zweckverband) Sparkasse Mittelmosel - Eifel Mosel Hunsrück': 6038,
                                      'Sparkassenverband RP': 5575,
                                      'RWE': 5200,
                                      'Planungsgemeinschaft Mittelrhein-Westerwald': 2195,
                                      'Westenergie': 2000,
                                      'Abfallzweckverband Rhein-Mosel-Eifel': 600,
                                      'Rheinische Zusatzversorgungskasse': 194,
                                      'Agentur für Arbeit': 26,
                                      }
                 }
type(data_cochemzell)
dict
data_cochemzell['partei']
'CDU'
type(data_cochemzell['partei'])
str
type(data_cochemzell['nebeneinkünfte'])
dict
# Berechne die Summe der Nebeneinkünfte in Cochemzell

Alle Nebeneinkünfte von allen Landrät:innen in Rheinlandpfalz im Jahr 2020.#

data = [
 {'kreis': 'Landkreis Mainz-Bingen',
  'nebeneinkünfte': {'Planungsgemeinschaft Rheinhessen-Nahe': 1200,
                     'Rheinhessenwein e.V.': 25,
                     'Sparkasse Mainz': 8944,
                     'Zweckverband Sparkasse Mainz': 200,
                     'Zweckverband Sparkasse Rhein-Nahe': 9444,
                     'Zweckverband Verkehrsbund Rhein Nahe': 613.55},
  'partei': 'CDU',
  'person': 'Dorothea Schäfer'},
 {'kreis': 'Kreisfreie Stadt Frankenthal (Pfalz)',
  'nebeneinkünfte': {'Gewässerzweckverband Isenach-Eckbach': 6600,
                     'Pfälzische Pensionsanstalt': 200,
                     'Sparkasse Rhein-Haardt': 4074.96,
                     'Sparkassenverband RP': 5575,
                     'Verband Region Rhein-Neckar': 1560,
                     'Zweckverband Sparkasse Rhein-Haardt': 135},
  'partei': 'CDU',
  'person': 'Martin Hebich'},
 {'kreis': 'Landkreis Trier-Saarburg',
  'nebeneinkünfte': {'Innogy Westenergie': 1000,
                     'Kommunaler Rat': 25.56,
                     'Landkreistag RP': 6100,
                     'RWE': 129000,
                     'Sparkasse Trier': 9544,
                     'Sparkassen- und Giroverband RP': 5898.65,
                     'Zweckverband Industriepark Region Trier': 2208,
                     'Zweckverband Sparkasse Trier': 150},
  'partei': 'CDU',
  'person': 'Günther Schartz'},
 {'kreis': 'Kreisfreie Stadt Mainz',
  'nebeneinkünfte': {'Gas-Union Frankfurth/Mainz': 7812.5,
                     'Sparkasse Mainz': 8844,
                     'Zweckverband der Sparkasse Mainz': 300},
  'partei': 'SPD',
  'person': 'Michael Ebling'},
 {'kreis': 'Kreisfreie Stadt Speyer',
  'nebeneinkünfte': {'Kommunaler Rat': 76.68,
                     'Kreditausschuss': 400,
                     'Sparkasse Vorderpfalz': 400,
                     'Sparkassenverband RP': 7644,
                     'Zweckverband Sparkasse Vorderpfalz': 320},
  'partei': 'SPD',
  'person': 'Stefanie Seiler'},
 {'kreis': 'Landkreis Kusel',
  'nebeneinkünfte': {'Fremdenverkehrszweckverband': 1533.84,
                     'Kreissparkasse Kusel': 6880},
  'partei': 'CDU',
  'person': 'Otto Rubly'},
 {'kreis': 'Kreisfreie Stadt Trier',
  'nebeneinkünfte': {'Sparkasse Trier': 8944},
  'partei': 'SPD',
  'person': 'Wolfram Leibe'},
 {'kreis': 'Landkreis Bad Dürkheim',
  'nebeneinkünfte': {'Landkreistag RP': 100,
                     'Pfälzische Pensionsanstalt': 300,
                     'Sparkasse Rhein-Haardt': 6950.04,
                     'Verband Region Rhein-Neckar': 540,
                     'Zweckverband Sparkasse Rhein-Haardt': 270,
                     'Zweckverbandes Pollichia-Museum': 783.96},
  'partei': 'CDU',
  'person': 'Hans-Ulrich Ihlenfeld'},
 {'kreis': 'Landkreis Cochem-Zell',
  'nebeneinkünfte': {'(Zweckverband) Sparkasse Mittelmosel - Eifel Mosel Hunsrück': 6038,
                     'Abfallzweckverband Rhein-Mosel-Eifel': 600,
                     'Agentur für Arbeit': 26,
                     'Altlastenzweckverband Tierische Nebenprodukte': 8073.24,
                     'Planungsgemeinschaft Mittelrhein-Westerwald': 2195,
                     'RWE': 5200,
                     'Rheinische Zusatzversorgungskasse': 194,
                     'Sparkassenverband RP': 5575,
                     'Westenergie': 2000,
                     'Zweckverband Tierische Nebenprodukte Südwest': 8073.24},
  'partei': 'CDU',
  'person': 'Manfred Schnur'},
 {'kreis': 'Landkreis Südwestpfalz',
  'nebeneinkünfte': {'Bezirkstag Pfalz': 2100,
                     'Institut für Medien und Pädagogik e. V.': 17.9,
                     'Kommunaler Rat': 51.12,
                     'Landkreistag RP': 50,
                     'Sparkasse Südwestpfalz': 8544,
                     'Zweckverband Entwicklungsgebiet Flugplatz ZW': 1380.51},
  'partei': 'CDU',
  'person': 'Susanne Ganster'},
 {'kreis': 'Kreisfreie Stadt Kaiserslautern',
  'nebeneinkünfte': {'Sparkassen- und Giroverband RP': 5269,
                     'Stadtsparkasse': 5704},
  'partei': 'SPD',
  'person': 'Klaus Weichel'},
 {'kreis': 'Rhein-Lahn-Kreis',
  'nebeneinkünfte': {'Agentur für Arbeit': 26,
                     'Altlastenzweckverband Tierische Nebenprodukte': 3924.48,
                     'Baugenossenschaft Rhein-Lahn eG': 200,
                     'Kommunaler Rat': 51.12,
                     'Landesbank Baden-Württemberg': 1283.33,
                     'Nassauische Sparkasse': 4832.88,
                     'Süwag Energie AG': 8000,
                     'Zweckverband Tierische Nebenprodukte Südwest': 3924.48},
  'partei': 'SPD',
  'person': 'Frank Puchtler'},
 {'kreis': 'Landkreis Südliche Weinstraße',
  'nebeneinkünfte': {'Agentur für Arbeit': 52,
                     'Bezirksverband Pfalz': 150,
                     'Landeszentrale für Medien und Kommunikation': 893,
                     'Landkreistag RP': 50,
                     'Pfalzklinikum für Psychiatrie u. Neurologie (AdöR)': 200,
                     'Sparkasse Südliche Weinstraße': 9594,
                     'Verband Region Rhein-Neckar': 660},
  'partei': 'CDU',
  'person': 'Dietmar Seefeldt'},
 {'kreis': 'Kreisfreie Stadt Ludwigshafen am Rhein',
  'nebeneinkünfte': {'Sparkasse Vorderpfalz': 8644,
                     'Verband Region Rhein-Neckar': 144},
  'partei': 'SPD',
  'person': 'Jutta Steinruck'},
 {'kreis': 'Landkreis Bernkastel-Wittlich',
  'nebeneinkünfte': {'Agentur für Arbeit': 26,
                     'Altlastenzweckverband Tierische Nebenprodukte': 50,
                     'RWE': 5200,
                     'Sparkasse Mittelmosel - Eifel Mosel Hunsrück': 400,
                     'Zweckverband Abfallwirtschaft Region Trier': 7848,
                     'Zweckverband Sparkasse Mittelmosel - Eifel Mosel Hunsrück': 8324},
  'partei': 'CDU',
  'person': 'Gregor Eibes'},
 {'kreis': 'Kreisfreie Stadt Neustadt an der Weinstraße',
  'nebeneinkünfte': {'Sparkasse Rhein-Haardt': 4074.96,
                     'Sparkassenverband RP': 231,
                     'Verband Region Rhein-Neckar': 800,
                     'Zusatzversorgungskasse der bayerischen Gemeinden': 250,
                     'Zweckverband Sparkasse Rhein-Haardt': 135},
  'partei': 'Freie Wähler',
  'person': 'Marc Weigel'},
 {'kreis': 'Landkreis Germersheim',
  'nebeneinkünfte': {'Landkreistag RP': 50,
                     'Park & Bellheimer AG': 5950,
                     'Pfälzische Pensionsanstalt': 100,
                     'Sparkasse Germersheim-Kandel': 6680,
                     'Sparkassen- und Giroverband RP': 14073.41,
                     'Verkehrsverbund Rhein-Neckar': 1800,
                     'Zweckverband Schienenpersonennahverkehr Süd': 7464},
  'partei': 'CDU',
  'person': 'Fritz Brechtel'},
 {'kreis': 'Kreisfreie Stadt Worms',
  'nebeneinkünfte': {'Sparkasse Worms-Alzey-Ried': 8944,
                     'Zweckverband Sparkasse Worms-Alzey-Ried': 150},
  'partei': 'CDU',
  'person': 'Adolf Kessel'},
 {'kreis': 'Rhein-Hunsrück-Kreis',
  'nebeneinkünfte': {'Kreissparkasse Rhein-Hunsrück': 6980},
  'partei': 'CDU',
  'person': 'Marlon Brähr'},
 {'kreis': 'Landkreis Bad Kreuznach',
  'nebeneinkünfte': {'Landkreistag RP': 50,
                     'Sparkasse (div. Ebenen)': 9544,
                     'Westenergie': 1000},
  'partei': 'CDU',
  'person': 'Bettina Dickes'},
 {'kreis': 'Kreisfreie Stadt Landau in der Pfalz',
  'nebeneinkünfte': {'Kommunaler Rat': 51.12,
                     'Sparkasse Südliche Weinstraße': 6698,
                     'Sparkassenverband RP': 6236,
                     'Zweckverband Sparkasse Südliche Weinstraße': 450},
  'partei': 'CDU',
  'person': 'Thomas Hirsch'},
 {'kreis': 'Westerwaldkreis',
  'nebeneinkünfte': {'Landkreistag RP': 50,
                     'Nassauische Sparkasse': 6978.95,
                     'Planungsgemeinschaft Mittelrhein-Westerwald': 220,
                     'Sparkasse Westerwald-Sieg': 9044,
                     'Sparkassenverband RP': 308,
                     'Sparkassenzweckverband Nassau': 383.45,
                     'Sparkassenzweckverband Westerwald-Sieg': 100},
  'partei': 'CDU',
  'person': 'Achim Schwickert'},
 {'kreis': 'Eifelkreis Bitburg-Prüm',
  'nebeneinkünfte': {'Beirat für Kommunalentwicklung RP': 190.16,
                     'Kreissparkasse Bitburg-Prüm': 7080,
                     'Kreisvolkshochschule': 3597,
                     'Planungsgemeinschaft Region Trier': 600,
                     'RWE': 6155,
                     'Saarländischer Schwesternverband': 7735,
                     'Westenergie': 1160,
                     'Zweckverband Berufsbildungszentrum Bitburg-Prüm': 5181,
                     'Zweckverband Flugplatz Bitburg': 5186,
                     'Zweckverband Naturpark Südeifel': 5973,
                     'Zweckverband Schienen-Personen-NahVerker': 3723,
                     'Zweckverband Stausee Bitburg': 20,
                     'Zweckverband Verkehrsbund Region Trier': 7032},
  'partei': 'Freie Wähler',
  'person': 'Joachim Streit'},
 {'kreis': 'Landkreis Birkenfeld',
  'nebeneinkünfte': {'Kreissparkasse Birkenfeld': 6780,
                     'Landkreistag RP': 100,
                     'Planungsgemeinschaft Rheinhessen-Nahe': 100,
                     'RWE': 5200,
                     'Sparkassenverband RP': 153},
  'partei': 'CDU',
  'person': 'Matthias Schneider'},
 {'kreis': 'Landkreis Alzey-Worms',
  'nebeneinkünfte': {'Innogy Westenergie': 1000,
                     'Landkreistag RP': 150,
                     'Planungsgemeinschaft Rheinhessen-Nahe': 1200,
                     'Rheinhessenwein e.V.': 50,
                     'Sparkasse Worms-Alzey-Ried': 9094,
                     'Sparkassenverband RP': 5883},
  'partei': 'SPD',
  'person': 'Heiko Sippel'},
 {'kreis': 'Rhein-Pfalz-Kreis',
  'nebeneinkünfte': {'Bezirksverband Pfalz': 100,
                     'Landkreistag RP': 50,
                     'Sparkasse Vorderpfalz': 8664,
                     'Sparkassenverband RP': 308,
                     'Verband Region Rhein-Neckar': 240},
  'partei': 'CDU',
  'person': 'Clemens Kärner'},
 {'kreis': 'Donnersbergkreis',
  'nebeneinkünfte': {'Landkreistag RP': 100,
                     'Planungsgemeinschaft Westpfalz': 780,
                     'Sparkasse Donnersberg': 6842},
  'partei': 'parteilos',
  'person': 'Rainer Guth'},
 {'kreis': 'Landkreis Altenkirchen',
  'nebeneinkünfte': {'RWE': 1000,
                     'Sparkasse Westerwald-Sieg': 9244,
                     'Zweckverband Sparkasse Westerwald-Sieg': 100},
  'partei': 'CDU',
  'person': 'Peter Enders'},
 {'kreis': 'Kreisfreie Stadt Pirmasens',
  'nebeneinkünfte': {'Zweckverband Abfallverwertung Südwestpfalz': 3060},
  'partei': 'CDU',
  'person': 'Markus Zwick'},
 {'kreis': 'Landkreis Ahrweiler',
  'nebeneinkünfte': {'Kreissparkasse Ahrweiler': 7080,
                     'RWE': 5200,
                     'Rheinland-Westenenergie': 2000,
                     'Sparkassenverband RP': 5269,
                     'Wasserversorgung Zweckverband Main-Eifel': 873.13,
                     'Zweckverband SPNV': 7446},
  'partei': 'CDU',
  'person': 'Jürgen Pfähler'},
 {'kreis': 'Landkreis Kaiserslautern',
  'nebeneinkünfte': {'Kreissparkasse Kaiserslautern': 9284},
  'partei': 'CDU',
  'person': 'Ralf Leßmeister'},
 {'kreis': 'Landkreis Neuwied',
  'nebeneinkünfte': {'Landesmusikverband RLP': 480,
                     'Landkreistag RP': 75,
                     'Planungsgemeinschaft Mittelrhein-Westerwald': 165,
                     'Sparkasse Neuwied': 8644,
                     'Sparkasse Neuwied (Verbandsversammlung)': 200,
                     'Süwag Energie AG': 3000},
  'partei': 'CDU',
  'person': 'Achim Hallerbach'},
 {'kreis': 'Kreisfreie Stadt Zweibrücken',
  'nebeneinkünfte': {'Pfälzische Pensionsanstalt': 100,
                     'Sparkasse Südwestpfalz': 5698,
                     'ZAB consult GmbH': 1800,
                     'Zweckverband der Entwicklungsgesellschaft Flugplatz Zweibrücken': 1687.29},
  'partei': 'SPD',
  'person': 'Marold Wosnitza'},
 {'kreis': 'Kreisfreie Stadt Koblenz',
  'nebeneinkünfte': {'Sparkasse Koblenz': 9344, 'Sparkassenverband RP': 3016.7},
  'partei': 'SPD',
  'person': 'David Langner'},
 {'kreis': 'Landkreis Mayen-Koblenz',
  'nebeneinkünfte': {'Fremdenverkehrszweckverband': 1860,
                     'Hausverwaltung Schon & Müller': 100,
                     'Innogy Westenergie': 2000,
                     'Kreissparkasse Mayen': 7580,
                     'Landkreistag RP': 950,
                     'Planungsgemeinschaft Mittelrhein-Westerwald': 165,
                     'RWE': 5200,
                     'Sparkasse Koblenz': 9544,
                     'Sparkassen Finanzdienste': 300,
                     'Sparkassenverband RP': 5500,
                     'Unfallkasse RP': 75,
                     'Wasserversorgung Zweckverband Main-Eifel': 5658,
                     'Zweckverband Industriepark A61': 225,
                     'Zweckverband Vulkanpark': 150},
  'partei': 'CDU',
  'person': 'Alexander Saftig'}]

Aufgabe:#

Berechne die Summe der Nebenkünfte und füge sie ins Dictionary ein

# Funktion, die die Summe aller Nebenverdienste berechnet
# Iteriere durch die Daten jedes Kreises und füge die Nebeneinkunftssumme als Key / Value Pair ein

Weitere Recherchefragen#

  • Ist der Datensatz vollständig?

  • Wer verdient am meisten? In welchem Landkreis ist der:die Landrat:in im Amt?

  • Welche Firmen sind beteiligt? Wie viel bezahlen diese ingesamt an Landrät:innen?

  • Wie sind die Nebeneinkünfte auf die Parteien verteilt?

Zusatz: Laut Wikipedia gibt es 24 Landkreise und 12 kreisfreien Städte. Also insgesamt 36 Landrät:innen. Daher fehlen die Daten zu einem Kreis. Auf der Seite von Correctiv gibt es den Hinweis, dass Julia Gieseking, Landrätin in der Vulkaneifel, ihre Nebenverdienste nicht fristgerecht eingereicht hat.

# Überprüfe die Daten auf Vollständigkeitz

Erstelle eine neue Liste mit den Gesamtnebeneinkünften der Landrät:innen. Gib das Minimum, Maximum und den Durchschnitt an Nebeneinkünften an.

# Code
# Minimum, Maximum und Durchschnitt

Welche:r Landrat:in hat die höchsten Nebenverdienste? Gib den Namen und Landkreis aus.

# Code

Dictionary Sortieren#

sorted_data = sorted(data, key=lambda d: d['summe'], reverse=True)

print(sorted_data)
---------------------------------------------------------------------------
KeyError                                  Traceback (most recent call last)
Cell In[20], line 1
----> 1 sorted_data = sorted(data, key=lambda d: d['summe'], reverse=True)
      3 print(sorted_data)

Cell In[20], line 1, in <lambda>(d)
----> 1 sorted_data = sorted(data, key=lambda d: d['summe'], reverse=True)
      3 print(sorted_data)

KeyError: 'summe'

Parteien#

  1. Schreibe eine Liste mit allen Parteien der Landrät:innen

  1. Welche Partei hat insgesamt die höchsten Nebeneinkünfte?

Schritt 1: Erstelle ein Dictionary mit der Partei und einer Liste der jeweiligen Nebeneinkünfte.

{'CDU': [129000, 8500, ..., 43000],
 'SPD': [4700, 3721.0, ... , 3920],
 ... }
  1. Berechne den insgesamten Betrag an Nebeneinkünften pro Partei. Fülle ein neues Dictionary mit der Partei als Key und der Summe an Nebeneinkünften Value.

Firmen#

Welche Firmen zahlen Beträge an Landrät:innen aus?

  1. Erstelle eine Liste mit allen Firmen

  2. Filtere doppelt vorkommende Firmen aus

# 1. Erstelle eine Liste mit allen Firmen die Beträge an Landrät:innen in RP überweisen
# 2. Entferne Duplikate aus der Firmenliste
# Wie viele Firmen kamen öfters vor?
# Welche Firma zahlt in Summe am meisten an die Landrätinnen?
firmen_data = {}
for firma in unique_firmen:
    gehälter = []
    for datapoint in data:
        for firma2, gehalt in datapoint['nebeneinkünfte'].items():
            if firma == firma2:
                gehälter.append(gehalt)              
    firmen_data[firma] = gehälter


print(firmen_data)
# Summiere die Gehälter pro Firma auf
# Sortiere das Dictionary mit den Gehältern pro Firma. Der höchste Betrag soll dabei an erster Stelle stehen
sorted_data = sorted(firmen_data.items(), key=lambda item: item[1], reverse=True)
print(sorted_data)

Eingabetool für Nebeneinkünfte#

firma = ''
nebeneinkünfte = {}
while firma != 'x':
    firma = input('Firma:')
    gehalt = input('Gehalt:')
    nebeneinkünfte[firma] = gehalt
    print(nebeneinkünfte)
    
print('Alle Nebeneinkünfte:')
print(nebeneinkünfte)
firma = 'default'
nebeneinkünfte = {}
while firma != 'x':
    firma = input('Firma:')
    if firma == 'x':
        break
    gehalt = input('Gehalt:')
    erwerb = {firma: gehalt}
    nebeneinkünfte.update(erwerb)
    print(nebeneinkünfte)
    
print('While Loop Ende\n')
print('Alle Nebeneinkünfte:')
print(nebeneinkünfte)