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
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:#
Wie viel Geld verdient Manfred Schur an Nebeneinkünften insgesamt?
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:#
Wie viel Geld verdient Manfred Schur an Nebeneinkünften insgesamt?
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#
Schreibe eine Liste mit allen Parteien der Landrät:innen
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],
... }
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?
Erstelle eine Liste mit allen Firmen
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)