Advertisement
Guest User

BTW17 Erststimmen

a guest
Sep 17th, 2021
63
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 1.79 KB | None | 0 0
  1. import pandas as pd
  2.  
  3. import matplotlib.pyplot as plt
  4.  
  5. df = pd.read_csv("https://www.bundeswahlleiter.de/dam/jcr/72f186bb-aa56-47d3-b24c-6a46f5de22d0/btw17_kerg.csv", skiprows=5, sep=";", header=[0,1,2])
  6.  
  7. df = df.set_index("Gebiet")
  8. df.index = [row[0] for row in df.index]
  9.  
  10. erststimmen = (
  11.     df
  12.     .xs('Erststimmen', level=1, drop_level=False, axis=1)
  13.     .drop(["Wahlberechtigte", "Wähler", "Ungültige", "Gültige"], axis=1)
  14. )
  15.  
  16. erststimmen.columns = [col[0] for col in erststimmen.columns]
  17.  
  18. left_parties = ["BÜNDNIS 90/DIE GRÜNEN", "DIE LINKE", "Sozialdemokratische Partei Deutschlands"]
  19.  
  20. right_parties = ["Christlich Demokratische Union Deutschlands", "Alternative für Deutschland", "Freie Demokratische Partei", 'Christlich-Soziale Union in Bayern e.V.']
  21.  
  22. df2 = pd.DataFrame(columns=["erststimmen_links", "erststimmen_rechts", "sieger", "eigentlicher_sieger"])
  23. for row in erststimmen.index:
  24.     if str(row) != "nan":
  25.         largest = erststimmen.loc[row]
  26.         lefts = largest[largest.index.isin(left_parties)].sum()
  27.         rights = largest[largest.index.isin(right_parties)].sum()
  28.         winner = erststimmen.loc[row].idxmax()
  29.         winner_wing = "rechts" if winner in right_parties else "links"
  30.         left_or_right = "links" if lefts > rights else "rechts"
  31.         df2.loc[row, "erststimmen_links"] = lefts
  32.         df2.loc[row, "erststimmen_rechts"] = rights
  33.         df2.loc[row, "sieger"] = winner
  34.         df2.loc[row, "sieger_lager"] = winner_wing
  35.         df2.loc[row, "eigentlicher_sieger"] = left_or_right
  36.  
  37. ungleich = df2.query("eigentlicher_sieger != sieger_lager")
  38.  
  39. ungleich.query("eigentlicher_sieger == 'links'")[["erststimmen_links", "erststimmen_rechts"]].sum()
  40.  
  41. ungleich.query("eigentlicher_sieger == 'rechts'")[["erststimmen_links", "erststimmen_rechts"]].sum()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement