Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen der Seite angezeigt.

Link zu der Vergleichsansicht

Beide Seiten, vorherige Überarbeitung Vorherige Überarbeitung
Nächste Überarbeitung
Vorherige Überarbeitung
gf_informatik:daten:processing [2023-05-23 19:48] – [Dateien schreiben] hofgf_informatik:daten:processing [2024-06-10 10:45] (aktuell) hof
Zeile 1: Zeile 1:
 # Data Processing in Python # Data Processing in Python
 +
 +{{ :gf_informatik:daten:dataprocessing.pptx | Präsentation}}
  
 Wir haben nun einige Erfahrung gesammelt, um mit Tabellenprogrammen Daten zu bearbeiten und darzustellen. Aber was, wenn wir *mehr* Daten haben, als Excel darstellen kann? Wir haben nun einige Erfahrung gesammelt, um mit Tabellenprogrammen Daten zu bearbeiten und darzustellen. Aber was, wenn wir *mehr* Daten haben, als Excel darstellen kann?
  
 Wieviel ist viel? 1000?  Wieviel ist viel? 1000? 
 +
 #### Aufgabe 1 #### Aufgabe 1
  
Zeile 25: Zeile 28:
    * Die Datei (hier 'dateiname.txt') muss sich im gleichen Ordner befinden wie die Python-Datei.    * Die Datei (hier 'dateiname.txt') muss sich im gleichen Ordner befinden wie die Python-Datei.
    * `'r'` bedeutet *read*, dass die Textdatei nur gelesen und nicht verändert wird.    * `'r'` bedeutet *read*, dass die Textdatei nur gelesen und nicht verändert wird.
- 
  
 #### Aufgabe 2 #### Aufgabe 2
  
-Lade die Datei [[https://kantonsschuleromanshorn.sharepoint.com/sites/FSInformatik/Freigegebene%20Dokumente/2M/Daten/Processing/Beispieldaten/gemeinden.csv?download=1|gemeinden.csv]] herunter und speichere sie im Ordner, wo du dein Python-Programm abspeicherst. Verwende obigen Python-Code, um herauszufinden, wieviel Zeilen die Datei hat+Lade die Datei [[https://kantonsschuleromanshorn.sharepoint.com/:f:/s/FSInformatik/Ek-Hi_stH2RMjDa-wQN9jekBMeF_YD6rvhmibDlNglGWxw?e=Y3AX65|gemeinden.csv]] herunter und speichere sie im Ordner, wo du dein Python-Programm abspeicherst. Verwende obigen Python-Code, um herauszufinden, wieviel Zeilen die Datei hat
 . .
 ## Dateien schreiben ## Dateien schreiben
Zeile 72: Zeile 74:
   * Mit `print(values[1])` wird der Kanton (die zweite Spalte) ausgegeben.   * Mit `print(values[1])` wird der Kanton (die zweite Spalte) ausgegeben.
   * Wieviele Gemeinden gibt es im Kanton Thurgau? Wieviele im Kanton Bern?   * Wieviele Gemeinden gibt es im Kanton Thurgau? Wieviele im Kanton Bern?
 +
 +<nodisp 1>
 +++++Lösung:|
 +<code python>
 +with open('gemeinden.csv', 'r') as infile:
 +    be = 0
 +    tg = 0
 +    for line in infile:
 +        tokens = line.split(',')
 +        canton = tokens[1]
 +        if canton == 'TG':
 +            tg = tg + 1
 +        elif canton == 'BE':
 +            be = be + 1
 +    print("Bern", be)
 +    print("Thurgau", tg)
 +</code>
 +++++
 +</nodisp>
  
  
Zeile 89: Zeile 110:
     pass                    # executed if an exception was thrown     pass                    # executed if an exception was thrown
 </code> </code>
 +
 #### Aufgabe 5 #### Aufgabe 5
 Benütze `try...except` um in deinem Code die Bevölkerung und die Fläche der Gemeinden auszulesen. Benütze `try...except` um in deinem Code die Bevölkerung und die Fläche der Gemeinden auszulesen.
Zeile 96: Zeile 118:
  
 #### Aufgabe 6 #### Aufgabe 6
-Schreibe eine Python-Funktion, die folgende Gemeinden findet+Schreibe Python-Codeum die folgenden Fragen zu beantworten
-  * die Gemeinde mit der kleinsten Bevölkerungszahl. +  * Was ist die Gemeinde mit der kleinsten Bevölkerungszahl? 
-  * die Gemeinde mit der grössten Fläche+  * Welche Gemeinde hat die grösste Fläche
 +  * Wieviele Einwohner hat die Schweiz?
  
 ++++Lösung:| ++++Lösung:|
   * kleinste Bevölkerung: Kammersrohr (32 Einwohner)   * kleinste Bevölkerung: Kammersrohr (32 Einwohner)
   * grösste Fläche: Scuol ($438.76 km^2$)   * grösste Fläche: Scuol ($438.76 km^2$)
 +  * Einwohner: $8670125$
 ++++ ++++
  
Zeile 110: Zeile 134:
 def find_smallest_population(): def find_smallest_population():
     with open('gemeinden.csv') as towns:     with open('gemeinden.csv') as towns:
 +        # Search for the smallest, so start out with a value larger than any expected.
         min_pop = 1000000         min_pop = 1000000
         town = None         town = None
Zeile 115: Zeile 140:
             cells = line.split(',')             cells = line.split(',')
             try:             try:
 +                # Population is in the third column, and it is an integer.
                 population = int(cells[2])                 population = int(cells[2])
                 if population < min_pop:                 if population < min_pop:
 +                    # We found a town smaller than the currently known smallest.
 +                    min_pop = population
 +                    town = cells[0]
 +            except ValueError:
 +                pass
 +        return town, min_pop
 +
 +print("Smallest town: ", find_smallest_population())
 +</code>
 +++++
 +</nodisp>
 +
 +<nodisp 2>
 +++++Code:|
 +<code python>
 +def find_smallest_population():
 +    with open('gemeinden.csv') as towns:
 +        # Search for the smallest, so start out with a value larger than any expected.
 +        min_pop = 1000000
 +        town = None
 +        for line in towns:
 +            cells = line.split(',')
 +            try:
 +                # Population is in the third column, and it is an integer.
 +                population = int(cells[2])
 +                if population < min_pop:
 +                    # We found a town smaller than the currently known smallest.
                     min_pop = population                     min_pop = population
                     town = cells[0]                     town = cells[0]
Zeile 127: Zeile 180:
 def find_largest_area(): def find_largest_area():
     with open('gemeinden.csv') as towns:     with open('gemeinden.csv') as towns:
 +        # We search for the largest, so start with a small value.
         max_area = 0         max_area = 0
         town = None         town = None
Zeile 132: Zeile 186:
             cells = line.split(',')             cells = line.split(',')
             try:             try:
 +                # Area is in the fourth column, and it is a floating point number.
                 area = float(cells[3])                 area = float(cells[3])
                 if area > max_area:                 if area > max_area:
 +                    # Found a town with larger area than the largest known so far.
                     max_area = area                     max_area = area
                     town = cells[0]                     town = cells[0]
Zeile 144: Zeile 200:
 ++++ ++++
 </nodisp> </nodisp>
 +
 #### Aufgabe 7 #### Aufgabe 7
 Erweitere den Code, um folgende Fragen zu beantworten: Erweitere den Code, um folgende Fragen zu beantworten:
Zeile 150: Zeile 207:
   * Wieviele Gemeinden hat der Kanton Glarus?   * Wieviele Gemeinden hat der Kanton Glarus?
  
-<nodisp 1>+<nodisp 2>
 ++++Code:| ++++Code:|
 <code python> <code python>
  • gf_informatik/daten/processing.1684871280.txt.gz
  • Zuletzt geändert: 2023-05-23 19:48
  • von hof