lehrkraefte:blc:informatik:glf4-23:socialmedia-data:analyze

Datenanalyse

Wir werden die Daten erst einmal in einer Tabellenkalkulation (z.B. Excel) analysieren. Dazu müssen die Daten aber erst in ein Format konvertiert werden, das von Excel auch gelesen werden kann. Dazu verwenden wir einfach CSV-Dateien, die sind am einfachsten zu erzeugen.

  • Speichern Sie folgendes Python-Script im gleichen Verzeichnis wie Ihre YouTube-Daten: youtube-json-to-csv-convert.py youtube-json-to-csv-convert-neu.py
  • Falls Sie keine eigene YouTube-Daten (oder andere Daten im JSON-Format haben), können Sie folgende Daten verwenden (die ent-zippte Datei müssen Sie noch zu watch-history.json umbenennen): old-data.json.zip.
  • In der git-bash, navigieren Sie in das Verzeichnis, in dem die Datei watch-history.json liegt und führen Sie das Python-Script youtube-json-to-csv-convert.py youtube-json-to-csv-convert-neu.pyaus.
  • Öffnen Sie die generierte CSV-Datei in Excel

Dazu gibt einen Screencast: Direktlink oder auf SharePoint.

Falls Sie andere Daten haben, versuchen Sie das Konvertierungsscript anzupassen. Fragen Sie Ihren Informatiklehrer und/oder senden Sie ihm einen Auszug Ihrer JSON-Datei (die Struktur der relevanten Einträge muss komplett erhalten sein, dafür reicht aber im Prinzip ein Eintrag).

Wir werden die Zeitangaben extrahieren. Entweder aus einzelnen Dateien, oder gleich aus allen. Das kann recht einfach direkt auf der Kommandozeile gemacht werden:

Aus einer Datei beispiel.json:

grep '"timestamp"' beispiel.json | cut -f2 -d: > timestamps.txt

Aus allen Dateien im aktuellen Verzeichnis und allen Unterverzeichnissen:

grep -hR '"timestamp"' | cut -f2 -d: > timestamps.txt

Erklärung:

  • grep liefert alle Zeilen, die ein Muster enthalten, in diesem Fall timestamp von Anführungszeichen eingeschlossen.
  • cut liefert das zweite Feld -f2 nach dem Doppelpunkt -d:.
  • > timestamps.txt leitet die Ausgabe in eine Datei um.

Die Zeitstempel sind meist in Sekunden nach dem 1.1.1970, z.T. in Millisekunden. Folgendes Pythonprogramm konvertiert diese Zeitstempel in ein Format, womit Excel umgehen kann: timestamps2csv.py

Dieses kann wie folgt gebraucht werden:

python timestamps2csv.py timestamps.txt"

Das Erzeugt eine CSV-Datei timestamps.txt.csv, die z.B. mit Excel eingelesen werden kann.

Bei Snapchat können aus der Datei location_history.json die Standortdaten extrahiert werden. Dazu verwenden Sie folgendes Pythonscript: location_history_analyzer.py location_history_analyzer-februar-2024.py (im gleichen Verzeichnis speichern und dort ausführen). Es wird eine Datei location_history.csv generiert.

Damit das deutsche Excel die CSV-Datei «Comma separated values» korrekt lesen kann, müssen Kommas zu Strichpunkten konvertiert werden… Entweder passen Sie das Python-Script an oder Sie verwenden folgende Kommandozeile:

cat location_history.csv | tr \, \; > location_history_de.csv

Erzeugen Sie eine Pivot-Tabelle dieser Daten, aggregiert nach Wochentag und Stunde. Schauen Sie sich dazu folgendes Video:

Screencast: Direktlink und auf SharePoint.

  • Überprüfen Sie, ob Sonntag oder Montag der erste Wochentag in Excel ist (in meinem LibreOffice ist Sonntag der Tag 1 (wohl weil mein Computer auf US-amerikanisch eingestellt ist).
  • Filtern Sie die Daten nach Datum. Vergleichen Sie dazu z.B. den September (Schulbetrieb) mit Juli (Sommerferien).
  • Öffnen Sie die CSV-Datei mit Excel (erst Kommas in Strichpunkte umwandeln, falls noch nicht gemacht.
  • Speichern Sie die Datei im .xlsx-Format
  • Selektieren Sie dann die obersten drei Zellen
  • Drücken Sie CtrlShift, um alle Zellen in der ersten drei Spalten zu selektieren.
  • Dann «Einfügen, 3D Karte», evtl. muss die Erweiterung noch installiert werden.
  • Datenfelder konfigurieren (u.a. auch die Zeit festlegen)
  • Damit spielen
  • lehrkraefte/blc/informatik/glf4-23/socialmedia-data/analyze.txt
  • Last modified: 2024/02/27 23:12
  • by Olaf Schnürer