Differences
This shows you the differences between two versions of the page.
Both sides previous revision Previous revision Next revision | Previous revision | ||
lehrkraefte:ks:informatik-glf4-20 [2021/05/03 11:29] Simon Knaus [L9-L10: Datenanalyse] |
lehrkraefte:ks:informatik-glf4-20 [2021/05/17 10:48] (current) Simon Knaus |
||
---|---|---|---|
Line 278: | Line 278: | ||
- Welche Fragen könntest du mit diesen Daten bzgl. deines Nutzungsverhalten beantworten? | - Welche Fragen könntest du mit diesen Daten bzgl. deines Nutzungsverhalten beantworten? | ||
- | ==== L9-L10: Datenanalyse ==== | + | ==== L9-L12: Datenanalyse ==== |
=== Ziel === | === Ziel === | ||
Am Beispiel von Youtube-Daten (Watch-History) können die eigenen Verhaltensmuster mit Excel analysiert werden. | Am Beispiel von Youtube-Daten (Watch-History) können die eigenen Verhaltensmuster mit Excel analysiert werden. | ||
Line 297: | Line 297: | ||
* ... | * ... | ||
- | ==== L11-L12: | + | ==== Datenanalyse Instagram ==== |
Analog zur Analyse von Youtube-Daten können auch Instagram-Daten analysiert werden. Zu diesem Zweck müssen die Daten bei Instagram heruntergeladen werden: [[https:// | Analog zur Analyse von Youtube-Daten können auch Instagram-Daten analysiert werden. Zu diesem Zweck müssen die Daten bei Instagram heruntergeladen werden: [[https:// | ||
- Lädt diese Daten herunter, entpackt sie und untersucht die heruntergeladenen Daten. Die HTML-Dateien sind miteinander verlinkt und können so navigiert werden. | - Lädt diese Daten herunter, entpackt sie und untersucht die heruntergeladenen Daten. Die HTML-Dateien sind miteinander verlinkt und können so navigiert werden. | ||
- Kopiert den Code unten in TigerJython und passt den Pfad zum entpackten Ordner oben an. Das Programm funktioniert ähnlich wie die Analyse der Youtube-Watchlist. Es untersucht alle Dateien, und speichert die Zeit wie auch die Art der Handlung auf Instagram. Die Datei ``resultat.csv`` kann dann gleich analysiert werden wie die Youtube-Watchlist. | - Kopiert den Code unten in TigerJython und passt den Pfad zum entpackten Ordner oben an. Das Programm funktioniert ähnlich wie die Analyse der Youtube-Watchlist. Es untersucht alle Dateien, und speichert die Zeit wie auch die Art der Handlung auf Instagram. Die Datei ``resultat.csv`` kann dann gleich analysiert werden wie die Youtube-Watchlist. | ||
+ | |||
+ | <code python insta.py> | ||
+ | import re # Regular Expressions | ||
+ | import datetime | ||
+ | import os # Files suchen | ||
+ | |||
+ | # Erklärungen zu diesem Code sind Analog dem Youtube-Extraktor. | ||
+ | |||
+ | rootdir = " | ||
+ | |||
+ | # Resultat, das am Schluss geschrieben werden soll | ||
+ | csv = "" | ||
+ | # Wie viele Kontrollausgaben? | ||
+ | debug = 10 | ||
+ | |||
+ | # Alle HTML-Dateien im Verzeicznis anzeigen | ||
+ | for root, dirs, files in os.walk(rootdir): | ||
+ | for file in files: | ||
+ | if file.endswith(" | ||
+ | filepath = os.path.join(root, | ||
+ | # Datei oeffnen | ||
+ | f = open(filepath, | ||
+ | html = f.read() | ||
+ | f.close() | ||
+ | | ||
+ | | ||
+ | # Datum der Form 30.12.2021, 22:13 einlesen | ||
+ | # Alle nötigen Angaben werden in Klammern " | ||
+ | daten = re.findall(" | ||
+ | if(debug> | ||
+ | print(file,": | ||
+ | debug-=1 | ||
+ | |||
+ | |||
+ | # Alle Einträge durchgehen, d enthält jeweils den nächsten Eintrag | ||
+ | for d in daten: | ||
+ | # Einträge in Zahlen umwandeln | ||
+ | # Monat plus die anderen Einträge (ohne AM/PM) in Zahlen umgewandelt | ||
+ | # Die Zeichenkette " | ||
+ | | ||
+ | e = [int(x) for x in d] | ||
+ | if debug>0: | ||
+ | # Ausgabe zur Kontrolle, sollte folgendes Format Produzieren | ||
+ | print(e) # [1, 6, 2021, 21, 23, 12] | ||
+ | debug -= 1 # Um 1 vermindern | ||
+ | | ||
+ | # Datum daraus generieren (macht die Datumsmanipulation einfacher). | ||
+ | # Jahr, Monat, Tag, Stunde, Minute, Sekunde | ||
+ | datum = datetime.datetime(e[2], | ||
+ | |||
+ | if debug>0: | ||
+ | # Ausgabe zur Kontrolle, produziert folgendes Format | ||
+ | print(datum) | ||
+ | debug -= 1 # Um 1 vermindern | ||
+ | | ||
+ | # Wochentag (Mo=0, Di=1, ..., So=6) | ||
+ | # Sämtliche Methoden für datetime-Objekte sind hier beschrieben: | ||
+ | wday = datum.weekday() | ||
+ | | ||
+ | # Formatierte Ausgabe des Datums, siehe https:// | ||
+ | # \n heisst neue Zeile. | ||
+ | csv += datum.strftime(" | ||
+ | | ||
+ | # Ausgabe in Datei schreiben | ||
+ | f = open(" | ||
+ | f.write(csv) | ||
+ | f.close() | ||
+ | |||
+ | |||
+ | </ | ||
+ | <code python insta_englisch.py> | ||
+ | import re # Regular Expressions | ||
+ | import datetime | ||
+ | import os # Files suchen | ||
+ | |||
+ | # Erklärungen zu diesem Code sind Analog dem Youtube-Extraktor. | ||
+ | |||
+ | rootdir = " | ||
+ | mnum = {" | ||
+ | |||
+ | # Resultat, das am Schluss geschrieben werden soll | ||
+ | csv = "" | ||
+ | # Wie viele Kontrollausgaben? | ||
+ | debug = 10 | ||
+ | |||
+ | # Alle HTML-Dateien im Verzeicznis anzeigen | ||
+ | for root, dirs, files in os.walk(rootdir): | ||
+ | for file in files: | ||
+ | if file.endswith(" | ||
+ | filepath = os.path.join(root, | ||
+ | # Datei oeffnen | ||
+ | f = open(filepath, | ||
+ | html = f.read() | ||
+ | f.close() | ||
+ | | ||
+ | | ||
+ | # Datum der Form 30.12.2021, 22:13 einlesen | ||
+ | # Alle nötigen Angaben werden in Klammern " | ||
+ | daten = re.findall(" | ||
+ | |||
+ | | ||
+ | if(debug> | ||
+ | print(file,": | ||
+ | debug-=1 | ||
+ | |||
+ | |||
+ | # Alle Einträge durchgehen, d enthält jeweils den nächsten Eintrag | ||
+ | for d in daten: | ||
+ | # Einträge in Zahlen umwandeln | ||
+ | # Monat plus die anderen Einträge (ohne AM/PM) in Zahlen umgewandelt | ||
+ | # Die Zeichenkette " | ||
+ | | ||
+ | e = [mnum[d[0]]] + [int(x) for x in d[1:-1]] | ||
+ | if d[5]==" | ||
+ | | ||
+ | if debug>0: | ||
+ | # Ausgabe zur Kontrolle, sollte folgendes Format Produzieren | ||
+ | print(e) # [1, 6, 2021, 21, 23, 12] | ||
+ | debug -= 1 # Um 1 vermindern | ||
+ | | ||
+ | # Datum daraus generieren (macht die Datumsmanipulation einfacher). | ||
+ | # Jahr, Monat, Tag, Stunde, Minute, Sekunde | ||
+ | datum = datetime.datetime(e[2], | ||
+ | |||
+ | if debug>0: | ||
+ | # Ausgabe zur Kontrolle, produziert folgendes Format | ||
+ | print(datum) | ||
+ | debug -= 1 # Um 1 vermindern | ||
+ | | ||
+ | # Wochentag (Mo=0, Di=1, ..., So=6) | ||
+ | # Sämtliche Methoden für datetime-Objekte sind hier beschrieben: | ||
+ | wday = datum.weekday() | ||
+ | | ||
+ | # Formatierte Ausgabe des Datums, siehe https:// | ||
+ | # \n heisst neue Zeile. | ||
+ | csv += datum.strftime(" | ||
+ | | ||
+ | # Ausgabe in Datei schreiben | ||
+ | f = open(" | ||
+ | f.write(csv) | ||
+ | f.close() | ||
+ | </ | ||
+ | ==== 2. Note: Bewertete Analyse: Abgabe 24. Mai 20121 ==== | ||
+ | Dokumentation der eigenen Analyse in einem PDF-Dokument, | ||
+ | - Eine Einleitung enthält, welche | ||
+ | * Beschreibt (Screenshot; | ||
+ | * Beschreibt, welche Daten erhoben werden. | ||
+ | - Eine Frage formuliert, welche auf Grund von Excel-Analysen der eigenen Daten beantwortet kann. | ||
+ | - Mindestens eine Analyse der eigenen Daten welche die Frage aus dem vorigen Punkt beantwortet. Z.B. Wann mache ich xxx am häufigsten? | ||
+ | - Einen Abschnitt, welcher Zusammenfasst, | ||
+ | * Excel | ||
+ | * Python | ||
+ | * BigData und sozialen Netzen im Allgemeinen. | ||
+ | |||
+ | Bewertungskriterien: | ||
+ | * Nachvollziehbarkeit der Ausführungen und Analysen | ||
+ | * Dokumentation der Analysen (Erklärungen, | ||
+ | * Ausführlichkeit der Analysen | ||
+ | * Darstellung des Berichts | ||
+ | |||
+ | === Tipps Word === | ||
+ | * '' | ||
+ | * '' | ||
+ | * '' | ||
+ | * '' | ||
===== Generelles Python ===== | ===== Generelles Python ===== | ||
=== Module ==== | === Module ==== |