Pandas: Daten auswählen

import pandas as pd
df = pd.read_csv('./lwzweit2019.csv', delimiter=";", encoding = "ISO-8859-1")
df.head()
df.shape
(217, 19)
spalte = df['Wahlkreis']
print(type(spalte))
print(spalte)
<class 'pandas.core.series.Series'>
0      19
1      19
2      19
3      19
4      19
       ..
212    22
213    22
214    22
215    22
216    22
Name: Wahlkreis, Length: 217, dtype: int64
zweispalten = df[['Wahlkreis', 'Name']]
print(type(zweispalten))
print(zweispalten.head())
<class 'pandas.core.frame.DataFrame'>
   Wahlkreis                                      Name
0         19                    Bornstedt - Fliederweg
1         19         Bornstedt - Kirschallee/Thaerstr.
2         19  Bornstedt - A.-Wolff-Platz/E.-Arendt-Str
3         19                                    Sacrow
4         19        Eiche - Kaiser-Friedrich-Str. Süd
# Punkt-Schreibweise
zweispalten.Name
0                        Bornstedt - Fliederweg
1             Bornstedt - Kirschallee/Thaerstr.
2      Bornstedt - A.-Wolff-Platz/E.-Arendt-Str
3                                        Sacrow
4            Eiche - Kaiser-Friedrich-Str. Süd
                         ...
212       Drewitz - Alt Drewitz/Am Silbergraben
213                Kirchsteigfeld - Priesterweg
214                Potsdam Briefwahlbezirk 9065
215                Potsdam Briefwahlbezirk 9070
216                Potsdam Briefwahlbezirk 9071
Name: Name, Length: 217, dtype: object
# Zugriff mit loc
df.loc[:,'Name']
df.loc[4,'Name']
'Eiche - Kaiser-Friedrich-Str. Süd'
# Zugriff mit iloc
df.iloc[4,3]
757
df.iloc[4,:]
Nr                                                     1502
Wahlkreis                                                19
Name                     Eiche - Kaiser-Friedrich-Str. Süd
Wahlb. insges.                                          757
Wähler                                                 335
Ungült. Zweitstimmen                                     3
Gültige Zweitstimmen                                   332
SPD                                                      82
CDU                                                      40
DIE LINKE                                                51
AfD                                                      68
GRÜNE/B 90                                              55
BVB / FREIE WÄHLER                                       8
PIRATEN                                                   1
FDP                                                      14
ÖDP                                                      4
Tierschutzpartei                                          8
V-Partei³                                                1
Sonstige                                                  0
Name: 4, dtype: object
df.iloc[4,8:12]
CDU            40
DIE LINKE      51
AfD            68
GRÜNE/B 90    55
Name: 4, dtype: object
# Sortierung
df.sort_values('Name').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
43 5206 21 Babelsberg Nord - Alt Nowawes West 1067 610 4 606 160 50 91 57 186 10 10 19 6 11 6 0
41 5203 21 Babelsberg Nord - Fontanestr. 1255 690 0 690 165 92 74 55 217 10 3 60 2 11 1 0
156 5208 21 Babelsberg Nord - Goetheplatz 1140 705 8 697 176 78 86 62 229 13 3 31 5 11 3 0
143 5202 21 Babelsberg Nord - Karl-Marx-Str./Donarst 1160 646 5 641 149 117 57 70 161 10 4 53 9 7 4 0
141 5201 21 Babelsberg Nord - Klein Glienicke 960 520 3 517 128 56 43 36 173 9 5 56 2 8 1 0
df.sort_values('Name', ascending=False).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
57 4203 22 Zentrum Ost - Lotte-Pulewka-Str. 1027 458 11 447 132 23 110 92 52 5 5 8 5 15 0 0
53 4201 22 Zentrum Ost - Humboldtring/Babelsb. Str. 1094 530 5 525 127 49 79 75 115 11 6 31 8 22 2 0
159 4204 22 Zentrum Ost - Humboldtring Ost/Wiesenstr 1379 647 11 636 243 49 116 106 71 11 8 12 4 16 0 0
55 4202 22 Zentrum Ost - Hans-Marchwitza-Ring 913 358 10 348 84 21 69 64 68 8 4 6 6 14 4 0
24 1507 19 Werder (Havel), Zur alten Weberei/Angler 1054 559 4 555 123 102 44 115 94 15 7 31 7 14 3 0
ergebnis_filter_series = df['SPD'] > 0
ergebnis_filter_series
0      True
1      True
2      True
3      True
4      True
       ...
212    True
213    True
214    True
215    True
216    True
Name: SPD, Length: 217, dtype: bool
ergebnis_filter_series = [(df['SPD'] > 10) & (df['SPD'] < 50)]
ergebnis_filter_series
[0      False
 1      False
 2      False
 3       True
 4      False
        ...
 212    False
 213    False
 214    False
 215    False
 216    False
 Name: SPD, Length: 217, dtype: bool]
# ???
df['Name'].isin(['Potsdam'])
0      False
1      False
2      False
3      False
4      False
       ...
212    False
213    False
214    False
215    False
216    False
Name: Name, Length: 217, dtype: bool
df.axes
[RangeIndex(start=0, stop=217, step=1),
 Index(['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'],
       dtype='object')]
# ???
# axis0 = Zeilen oder 'rows'
# axis1 = Spalten oder 'columns'
#df.mean(axis=1)
df.head()
df.drop('Sonstige', axis=1).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³
0 1302 19 Bornstedt - Fliederweg 1183 635 4 631 175 76 86 94 121 22 2 31 7 15 2
1 1304 19 Bornstedt - Kirschallee/Thaerstr. 1259 697 4 693 176 111 59 102 154 15 2 54 7 12 1
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
3 1401 19 Sacrow 109 60 0 60 16 12 8 8 11 2 0 0 0 3 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