Pandas: DataFrame¶
import pandas as pd
df = pd.read_csv('./lwzweit2019.csv', delimiter=";")
df.head()
Nr | Wahlkreis | Name | Wahlb. insges. | Wähler | Ungült. Zweitstimmen | Gültige Zweitstimmen | SPD | CDU | DIE LINKE | AfD | GRÜNE/B 90 | BVB / FREIE WÄHLER | PIRATEN | FDP | ÖDP | Tierschutzpartei | V-Partei³ | Sonstige | |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
0 | 1302 | 19 | Bornstedt - Fliederweg | 1183 | 635 | 4 | 631 | 175 | 76 | 86 | 94 | 121 | 22 | 2 | 31 | 7 | 15 | 2 | 0 |
1 | 1304 | 19 | Bornstedt - Kirschallee/Thaerstr. | 1259 | 697 | 4 | 693 | 176 | 111 | 59 | 102 | 154 | 15 | 2 | 54 | 7 | 12 | 1 | 0 |
2 | 1309 | 19 | Bornstedt - A.-Wolff-Platz/E.-Arendt-Str | 1742 | 847 | 2 | 845 | 196 | 108 | 82 | 78 | 239 | 26 | 9 | 59 | 18 | 24 | 6 | 0 |
3 | 1401 | 19 | Sacrow | 109 | 60 | 0 | 60 | 16 | 12 | 8 | 8 | 11 | 2 | 0 | 0 | 0 | 3 | 0 | 0 |
4 | 1502 | 19 | Eiche - Kaiser-Friedrich-Str. Süd | 757 | 335 | 3 | 332 | 82 | 40 | 51 | 68 | 55 | 8 | 1 | 14 | 4 | 8 | 1 | 0 |
# Eine Kopie mit anderer Spalte als Index
df.set_index('Nr').head()
df.head()
Nr | Wahlkreis | Name | Wahlb. insges. | Wähler | Ungült. Zweitstimmen | Gültige Zweitstimmen | SPD | CDU | DIE LINKE | AfD | GRÜNE/B 90 | BVB / FREIE WÄHLER | PIRATEN | FDP | ÖDP | Tierschutzpartei | V-Partei³ | Sonstige | |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
0 | 1302 | 19 | Bornstedt - Fliederweg | 1183 | 635 | 4 | 631 | 175 | 76 | 86 | 94 | 121 | 22 | 2 | 31 | 7 | 15 | 2 | 0 |
1 | 1304 | 19 | Bornstedt - Kirschallee/Thaerstr. | 1259 | 697 | 4 | 693 | 176 | 111 | 59 | 102 | 154 | 15 | 2 | 54 | 7 | 12 | 1 | 0 |
2 | 1309 | 19 | Bornstedt - A.-Wolff-Platz/E.-Arendt-Str | 1742 | 847 | 2 | 845 | 196 | 108 | 82 | 78 | 239 | 26 | 9 | 59 | 18 | 24 | 6 | 0 |
3 | 1401 | 19 | Sacrow | 109 | 60 | 0 | 60 | 16 | 12 | 8 | 8 | 11 | 2 | 0 | 0 | 0 | 3 | 0 | 0 |
4 | 1502 | 19 | Eiche - Kaiser-Friedrich-Str. Süd | 757 | 335 | 3 | 332 | 82 | 40 | 51 | 68 | 55 | 8 | 1 | 14 | 4 | 8 | 1 | 0 |
# ohne inplace wird eine Kopie angelegt
df.set_index('Nr', inplace=True)
df.head()
Wahlkreis | Name | Wahlb. insges. | Wähler | Ungült. Zweitstimmen | Gültige Zweitstimmen | SPD | CDU | DIE LINKE | AfD | GRÜNE/B 90 | BVB / FREIE WÄHLER | PIRATEN | FDP | ÖDP | Tierschutzpartei | V-Partei³ | Sonstige | |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Nr | ||||||||||||||||||
1302 | 19 | Bornstedt - Fliederweg | 1183 | 635 | 4 | 631 | 175 | 76 | 86 | 94 | 121 | 22 | 2 | 31 | 7 | 15 | 2 | 0 |
1304 | 19 | Bornstedt - Kirschallee/Thaerstr. | 1259 | 697 | 4 | 693 | 176 | 111 | 59 | 102 | 154 | 15 | 2 | 54 | 7 | 12 | 1 | 0 |
1309 | 19 | Bornstedt - A.-Wolff-Platz/E.-Arendt-Str | 1742 | 847 | 2 | 845 | 196 | 108 | 82 | 78 | 239 | 26 | 9 | 59 | 18 | 24 | 6 | 0 |
1401 | 19 | Sacrow | 109 | 60 | 0 | 60 | 16 | 12 | 8 | 8 | 11 | 2 | 0 | 0 | 0 | 3 | 0 | 0 |
1502 | 19 | Eiche - Kaiser-Friedrich-Str. Süd | 757 | 335 | 3 | 332 | 82 | 40 | 51 | 68 | 55 | 8 | 1 | 14 | 4 | 8 | 1 | 0 |
list(df)
df.rename(columns = {'Wahlkreis': 'WK',
'Wahlb. insges.':'wahlb',
'Wähler':'Wähler',
'Ungült. Zweitstimmen': 'uWS',
'Gültige Zweitstimmen': 'gWS',
'DIE LINKE': 'LINKE',
'GRÜNE/B 90':'Grüne',
'BVB / FREIE WÄHLER': 'Freie',
'ÖDP':'ADP',
'Tierschutzpartei': 'Tierschutz',
'V-Partei³': 'V-Partei',
'Unnamed: 20': 'leer'}).head()
WK | Name | wahlb | Wähler | uWS | gWS | SPD | CDU | LINKE | AfD | Grüne | Freie | PIRATEN | FDP | ADP | Tierschutz | V-Partei | Sonstige | |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Nr | ||||||||||||||||||
1302 | 19 | Bornstedt - Fliederweg | 1183 | 635 | 4 | 631 | 175 | 76 | 86 | 94 | 121 | 22 | 2 | 31 | 7 | 15 | 2 | 0 |
1304 | 19 | Bornstedt - Kirschallee/Thaerstr. | 1259 | 697 | 4 | 693 | 176 | 111 | 59 | 102 | 154 | 15 | 2 | 54 | 7 | 12 | 1 | 0 |
1309 | 19 | Bornstedt - A.-Wolff-Platz/E.-Arendt-Str | 1742 | 847 | 2 | 845 | 196 | 108 | 82 | 78 | 239 | 26 | 9 | 59 | 18 | 24 | 6 | 0 |
1401 | 19 | Sacrow | 109 | 60 | 0 | 60 | 16 | 12 | 8 | 8 | 11 | 2 | 0 | 0 | 0 | 3 | 0 | 0 |
1502 | 19 | Eiche - Kaiser-Friedrich-Str. Süd | 757 | 335 | 3 | 332 | 82 | 40 | 51 | 68 | 55 | 8 | 1 | 14 | 4 | 8 | 1 | 0 |
#grouped_data = df[['CDU', 'SPD']].groupby('SPD').sum()
grouped_data = df[['CDU', 'SPD']]
grouped_data[0:10]
#grouped_data
CDU | SPD | |
---|---|---|
Nr | ||
1302 | 76 | 175 |
1304 | 111 | 176 |
1309 | 108 | 196 |
1401 | 12 | 16 |
1502 | 40 | 82 |
1503 | 86 | 197 |
1601 | 31 | 52 |
1701 | 61 | 101 |
1702 | 103 | 135 |
8101 | 18 | 51 |
df.count()
Wahlkreis 217
Name 217
Wahlb. insges. 217
Wähler 217
Ungült. Zweitstimmen 217
Gültige Zweitstimmen 217
SPD 217
CDU 217
DIE LINKE 217
AfD 217
GRÜNE/B 90 217
BVB / FREIE WÄHLER 217
PIRATEN 217
FDP 217
ÖDP 217
Tierschutzpartei 217
V-Partei³ 217
Sonstige 217
dtype: int64
#df.drop('Unnamed: 20', axis=1, inplace=True)
#df.drop('Unnamed: 0', axis=1, inplace=True)
list(df)
df.dropna()
Wahlkreis | Name | Wahlb. insges. | Wähler | Ungült. Zweitstimmen | Gültige Zweitstimmen | SPD | CDU | DIE LINKE | AfD | GRÜNE/B 90 | BVB / FREIE WÄHLER | PIRATEN | FDP | ÖDP | Tierschutzpartei | V-Partei³ | Sonstige | |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Nr | ||||||||||||||||||
1302 | 19 | Bornstedt - Fliederweg | 1183 | 635 | 4 | 631 | 175 | 76 | 86 | 94 | 121 | 22 | 2 | 31 | 7 | 15 | 2 | 0 |
1304 | 19 | Bornstedt - Kirschallee/Thaerstr. | 1259 | 697 | 4 | 693 | 176 | 111 | 59 | 102 | 154 | 15 | 2 | 54 | 7 | 12 | 1 | 0 |
1309 | 19 | Bornstedt - A.-Wolff-Platz/E.-Arendt-Str | 1742 | 847 | 2 | 845 | 196 | 108 | 82 | 78 | 239 | 26 | 9 | 59 | 18 | 24 | 6 | 0 |
1401 | 19 | Sacrow | 109 | 60 | 0 | 60 | 16 | 12 | 8 | 8 | 11 | 2 | 0 | 0 | 0 | 3 | 0 | 0 |
1502 | 19 | Eiche - Kaiser-Friedrich-Str. Süd | 757 | 335 | 3 | 332 | 82 | 40 | 51 | 68 | 55 | 8 | 1 | 14 | 4 | 8 | 1 | 0 |
1503 | 19 | Eiche - Altes Rad West/Lindstedter Str. | 1190 | 641 | 5 | 636 | 197 | 86 | 64 | 106 | 134 | 13 | 6 | 21 | 3 | 6 | 0 | 0 |
1601 | 19 | Grube | 345 | 210 | 3 | 207 | 52 | 31 | 18 | 37 | 42 | 13 | 0 | 7 | 2 | 4 | 1 | 0 |
1701 | 19 | Golm - Ehrenpfortenbergstr. | 786 | 450 | 6 | 444 | 101 | 61 | 58 | 69 | 94 | 19 | 4 | 23 | 4 | 8 | 3 | 0 |
1702 | 19 | Golm - Geiselbergstr./Am Mühlenberg | 1004 | 561 | 4 | 557 | 135 | 103 | 55 | 103 | 94 | 19 | 5 | 18 | 9 | 14 | 2 | 0 |
8101 | 19 | Uetz-Paaren | 358 | 180 | 4 | 176 | 51 | 18 | 14 | 42 | 17 | 13 | 2 | 9 | 1 | 9 | 0 | 0 |
8501 | 19 | Neu Fahrland | 1281 | 671 | 2 | 669 | 155 | 121 | 72 | 134 | 104 | 21 | 7 | 34 | 4 | 17 | 0 | 0 |
8602 | 19 | Groß Glienicke - Bullenwinkel/Braumannwe | 1085 | 576 | 6 | 570 | 165 | 103 | 35 | 78 | 115 | 20 | 3 | 33 | 1 | 17 | 0 | 0 |
8604 | 19 | Groß Glienicke - An der Kirche | 917 | 377 | 3 | 374 | 89 | 48 | 40 | 79 | 62 | 21 | 4 | 19 | 1 | 11 | 0 | 0 |
9032 | 19 | Potsdam Briefwahlbezirk 9032 | 0 | 773 | 3 | 770 | 155 | 162 | 95 | 70 | 199 | 22 | 6 | 42 | 5 | 11 | 3 | 0 |
9072 | 19 | Potsdam Briefwahlbezirk 9072 | 0 | 565 | 6 | 559 | 142 | 106 | 63 | 83 | 109 | 15 | 5 | 13 | 5 | 15 | 3 | 0 |
9074 | 19 | Potsdam Briefwahlbezirk 9074 | 0 | 664 | 4 | 660 | 138 | 135 | 53 | 83 | 141 | 34 | 7 | 52 | 4 | 11 | 2 | 0 |
1202 | 19 | Schwielowsee, OT Caputh, Mehrzweckraum | 1495 | 802 | 7 | 795 | 213 | 96 | 64 | 131 | 165 | 43 | 6 | 52 | 4 | 21 | 0 | 0 |
1204 | 19 | Schwielowsee, OT Ferch, Rathaus | 780 | 360 | 4 | 356 | 94 | 40 | 25 | 53 | 62 | 57 | 2 | 15 | 3 | 5 | 0 | 0 |
1205 | 19 | Schwielowsee, OT Ferch, Sportlerheim | 768 | 460 | 5 | 455 | 93 | 74 | 36 | 93 | 67 | 67 | 2 | 12 | 1 | 10 | 0 | 0 |
1208 | 19 | Schwielowsee, OT Geltow, Bürgerclub | 660 | 385 | 0 | 385 | 96 | 68 | 52 | 59 | 57 | 15 | 1 | 27 | 0 | 6 | 4 | 0 |
9005 | 19 | Schwielowsee, Briefwahlbezirk 9005 | 0 | 742 | 3 | 739 | 180 | 138 | 97 | 88 | 128 | 59 | 1 | 33 | 0 | 13 | 2 | 0 |
9006 | 19 | Schwielowsee, Briefwahlbezirk 9006 | 0 | 1048 | 4 | 1044 | 248 | 156 | 115 | 129 | 210 | 85 | 6 | 62 | 6 | 24 | 3 | 0 |
1500 | 19 | Werder (Havel), Kita Anne Frank | 1054 | 525 | 7 | 518 | 115 | 80 | 45 | 79 | 136 | 18 | 6 | 21 | 5 | 11 | 2 | 0 |
1505 | 19 | Werder (Havel), Karl-Hagemeister-Grundsc | 860 | 342 | 3 | 339 | 90 | 48 | 42 | 81 | 26 | 17 | 1 | 17 | 4 | 13 | 0 | 0 |
1507 | 19 | Werder (Havel), Zur alten Weberei/Angler | 1054 | 559 | 4 | 555 | 123 | 102 | 44 | 115 | 94 | 15 | 7 | 31 | 7 | 14 | 3 | 0 |
1513 | 19 | Werder (Havel), Seniorenresidenz Haus 1 | 395 | 180 | 2 | 178 | 57 | 33 | 22 | 28 | 13 | 9 | 0 | 11 | 1 | 0 | 4 | 0 |
1518 | 19 | Werder (Havel), GT Elisabethhöhe, GZ Bli | 953 | 476 | 5 | 471 | 99 | 80 | 46 | 132 | 46 | 32 | 3 | 23 | 0 | 8 | 2 | 0 |
1519 | 19 | Werder (Havel), GT Plessow, Alte Schule | 510 | 287 | 2 | 285 | 70 | 71 | 21 | 52 | 30 | 18 | 0 | 10 | 6 | 6 | 1 | 0 |
1520 | 19 | Werder (Havel), OT Plötzin, Gemeindezent | 281 | 153 | 4 | 149 | 29 | 46 | 10 | 33 | 11 | 8 | 2 | 3 | 2 | 5 | 0 | 0 |
1522 | 19 | Werder (Havel), OT Töplitz, Haus des Bür | 778 | 415 | 5 | 410 | 121 | 63 | 31 | 92 | 56 | 16 | 1 | 18 | 2 | 10 | 0 | 0 |
... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... |
7104 | 22 | Stern - In der Aue/Gluckstr. | 1285 | 669 | 5 | 664 | 193 | 67 | 134 | 115 | 70 | 20 | 5 | 23 | 5 | 28 | 4 | 0 |
4207 | 22 | Südliche Innenstadt - Finkenweg | 382 | 220 | 0 | 220 | 33 | 21 | 47 | 25 | 60 | 5 | 6 | 3 | 7 | 9 | 4 | 0 |
7106 | 22 | Stern - Johannes-Kepler-Platz/Chopinstr. | 1101 | 465 | 9 | 456 | 144 | 36 | 108 | 89 | 31 | 7 | 7 | 15 | 2 | 15 | 2 | 0 |
6201 | 22 | Teltower Vorstadt - Kolonie Daheim | 1257 | 653 | 6 | 647 | 180 | 63 | 99 | 64 | 168 | 16 | 0 | 28 | 9 | 15 | 5 | 0 |
7202 | 22 | Drewitz - Sterncenter/Erich-Pommer-Str. | 1051 | 436 | 9 | 427 | 149 | 45 | 87 | 79 | 27 | 12 | 7 | 12 | 2 | 7 | 0 | 0 |
6302 | 22 | Schlaatz - Milanhorst | 812 | 290 | 2 | 288 | 72 | 19 | 54 | 81 | 26 | 11 | 1 | 5 | 5 | 13 | 1 | 0 |
7205 | 22 | Drewitz - Willy-A.-Kleinau-Weg | 754 | 264 | 2 | 262 | 82 | 16 | 52 | 67 | 17 | 10 | 3 | 8 | 0 | 5 | 2 | 0 |
6403 | 22 | Waldstadt I - Bernhard-Kellermann-Str. | 1104 | 540 | 7 | 533 | 182 | 55 | 78 | 110 | 55 | 14 | 5 | 15 | 4 | 15 | 0 | 0 |
7206 | 22 | Drewitz - Gerlachstr/E-v-Winterstein-Str | 711 | 297 | 2 | 295 | 81 | 21 | 45 | 80 | 24 | 13 | 3 | 14 | 0 | 13 | 1 | 0 |
6503 | 22 | Waldstadt II - Kiefernring/Sonnentaustr. | 1024 | 401 | 5 | 396 | 86 | 41 | 62 | 106 | 45 | 17 | 5 | 9 | 4 | 20 | 1 | 0 |
7301 | 22 | Kirchsteigfeld - Eleonore-Prochaska-Str. | 1011 | 486 | 7 | 479 | 144 | 41 | 69 | 92 | 84 | 11 | 6 | 14 | 3 | 15 | 0 | 0 |
6504 | 22 | Waldstadt II - Saarmunder Str. | 1209 | 407 | 4 | 403 | 106 | 31 | 92 | 73 | 48 | 15 | 5 | 8 | 4 | 17 | 4 | 0 |
7303 | 22 | Kirchsteigfeld - Zum Teich/Schinkelstr. | 1149 | 657 | 2 | 655 | 200 | 106 | 105 | 106 | 58 | 12 | 7 | 22 | 10 | 27 | 2 | 0 |
6505 | 22 | Waldstadt II - Am Springbruch | 1111 | 462 | 6 | 456 | 99 | 31 | 85 | 137 | 36 | 15 | 3 | 13 | 4 | 30 | 3 | 0 |
9061 | 22 | Potsdam Briefwahlbezirk 9061 | 0 | 589 | 9 | 580 | 142 | 74 | 84 | 63 | 150 | 12 | 3 | 33 | 4 | 15 | 0 | 0 |
6506 | 22 | Waldstadt II - Liefelds Grund | 914 | 355 | 3 | 352 | 102 | 27 | 68 | 82 | 28 | 13 | 4 | 9 | 6 | 11 | 2 | 0 |
9062 | 22 | Potsdam Briefwahlbezirk 9062 | 0 | 545 | 3 | 542 | 154 | 76 | 82 | 73 | 106 | 18 | 2 | 16 | 2 | 10 | 3 | 0 |
7105 | 22 | Stern - Parforceheide | 1167 | 549 | 9 | 540 | 146 | 54 | 103 | 84 | 99 | 7 | 7 | 24 | 2 | 13 | 1 | 0 |
9063 | 22 | Potsdam Briefwahlbezirk 9063 | 0 | 661 | 9 | 652 | 179 | 52 | 132 | 134 | 83 | 13 | 10 | 16 | 7 | 21 | 5 | 0 |
7109 | 22 | Stern - Niels-Bohr-Ring | 787 | 342 | 4 | 338 | 86 | 22 | 94 | 88 | 21 | 5 | 4 | 4 | 2 | 9 | 3 | 0 |
9064 | 22 | Potsdam Briefwahlbezirk 9064 | 0 | 1027 | 7 | 1020 | 274 | 138 | 184 | 144 | 148 | 23 | 12 | 50 | 6 | 35 | 6 | 0 |
7110 | 22 | Stern - Otto-Hahn-Ring | 895 | 325 | 6 | 319 | 90 | 20 | 79 | 64 | 27 | 9 | 4 | 10 | 1 | 14 | 1 | 0 |
9066 | 22 | Potsdam Briefwahlbezirk 9066 | 0 | 573 | 0 | 573 | 145 | 53 | 136 | 96 | 80 | 13 | 3 | 13 | 14 | 18 | 2 | 0 |
7112 | 22 | Stern - Gaußstr./Sternstr. | 895 | 297 | 1 | 296 | 89 | 14 | 61 | 83 | 20 | 10 | 2 | 8 | 1 | 6 | 2 | 0 |
9068 | 22 | Potsdam Briefwahlbezirk 9068 | 0 | 747 | 10 | 737 | 209 | 78 | 186 | 103 | 86 | 15 | 5 | 26 | 1 | 21 | 7 | 0 |
7201 | 22 | Drewitz - Alt Drewitz/Am Silbergraben | 1045 | 542 | 8 | 534 | 156 | 70 | 52 | 119 | 69 | 19 | 3 | 26 | 5 | 13 | 2 | 0 |
7302 | 22 | Kirchsteigfeld - Priesterweg | 1015 | 465 | 9 | 456 | 117 | 34 | 79 | 115 | 50 | 10 | 4 | 22 | 8 | 15 | 2 | 0 |
9065 | 22 | Potsdam Briefwahlbezirk 9065 | 0 | 624 | 2 | 622 | 202 | 57 | 134 | 88 | 75 | 17 | 11 | 14 | 7 | 17 | 0 | 0 |
9070 | 22 | Potsdam Briefwahlbezirk 9070 | 0 | 605 | 8 | 597 | 145 | 81 | 115 | 106 | 71 | 15 | 19 | 25 | 2 | 15 | 3 | 0 |
9071 | 22 | Potsdam Briefwahlbezirk 9071 | 0 | 580 | 2 | 578 | 154 | 55 | 113 | 74 | 92 | 19 | 14 | 27 | 10 | 18 | 2 | 0 |
217 rows × 18 columns
df.reset_index(inplace=True)
df.head()
Nr | Wahlkreis | Name | Wahlb. insges. | Wähler | Ungült. Zweitstimmen | Gültige Zweitstimmen | SPD | CDU | DIE LINKE | AfD | GRÜNE/B 90 | BVB / FREIE WÄHLER | PIRATEN | FDP | ÖDP | Tierschutzpartei | V-Partei³ | Sonstige | |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
0 | 1302 | 19 | Bornstedt - Fliederweg | 1183 | 635 | 4 | 631 | 175 | 76 | 86 | 94 | 121 | 22 | 2 | 31 | 7 | 15 | 2 | 0 |
1 | 1304 | 19 | Bornstedt - Kirschallee/Thaerstr. | 1259 | 697 | 4 | 693 | 176 | 111 | 59 | 102 | 154 | 15 | 2 | 54 | 7 | 12 | 1 | 0 |
2 | 1309 | 19 | Bornstedt - A.-Wolff-Platz/E.-Arendt-Str | 1742 | 847 | 2 | 845 | 196 | 108 | 82 | 78 | 239 | 26 | 9 | 59 | 18 | 24 | 6 | 0 |
3 | 1401 | 19 | Sacrow | 109 | 60 | 0 | 60 | 16 | 12 | 8 | 8 | 11 | 2 | 0 | 0 | 0 | 3 | 0 | 0 |
4 | 1502 | 19 | Eiche - Kaiser-Friedrich-Str. Süd | 757 | 335 | 3 | 332 | 82 | 40 | 51 | 68 | 55 | 8 | 1 | 14 | 4 | 8 | 1 | 0 |