Lecture notes week 3

Onderwerp: werken met hele grote spreadsheets

Inhoud

  1. Taken met spreadsheets
  2. Spreadsheet programmas
  3. Waarom moet je in dit vak eigenlijk leren werken met spreeadsheets?
  4. Spreadsheet manipulatie in Python met Pandas

Taken met spreadsheets

Jullie beurt:

  1. Maak een lijstje met taken die je uitvoert met spreadsheets
  2. Probeer ze abstract te beschrijven, als een taak in het spreadsheet,

    • onafhankelijk van een bepaalde instantie van een taak
    • Bijvoorbeeld: rijen toevoegen , gemiddelde berekenen van een kolom
  3. Probeer de taken ook te groeperen

Taken met spreadsheets

Data insert/delete/update

  • rijen weghalen/toevoegen/veranderen : nieuw element
  • kolom weghalen/toevoegen/veranderen : nieuwe eigenschap

Andere view

  • Herordenen, sorteren
  • slicing/dicing (selecteer alleen bepaalde rijen/kolommen)

combineren van spreadsheets

  • Twee sheets aan elkaar voegen
    • sheet met jullie student ID en cijfers (uit Blackboard)
    • sheet met jullie student ID en aanwezigheid (uit Datanose)
  • Waarom?
    • Kijken of er een verband is $\ldots$

Aggregaties

  • nieuw veld is een ingewikkelde functie van data in een rij, of een kolom
    • bijv: som, gemiddelde, mediaan, logaritme
  • correlatie
    • bepaal de "gelijkheid" van 2 rijen of kolommen

Groeperen Pivot table

  • Pivot table is typisch een 3D matrix.
    • gebruik bij categoriale eigenschappen
  • Groepeer rijen op een eigenschap (bijvoorbeeld geslacht)
  • Kies 1 kolom, maak groepjes voor elke waarde
    • bijv. opleiding
  • Kies een te verklaren variabele (kolom dus), en
    • vat die samen voor elke cel (hier geslacht-opleiding combinatie)
    • bijvoorbeeld: gemiddeld inkomen
  • Als je de aantallen in de cellen zet heb je een kruistabel (crosstabs).
  • Vaak eerste stap in data exploratie.

Bij 2 numerieke variabelen kan je een scatterplot maken

  • Eg, leeftijd tegen inkomen

Presentatie van resultaten

  • gave grafieken, tabellen, animaties
  • steeds vaker interactief

Spreadsheet programmas

  • Excel, openoffice, Google spreadsheets
    • allemaal zo'n beetje hetzelfde
    • combineren is lastig
  • Tableaux
    • Snelle mooie interactieve visualisaties
  • Google Fusion tables
    • kan echt grote spreadsheets aan
    • makkelijk plaatjes te maken
    • interactief
    • op het web
    • Je kan makkelijk spreadsheets combineren (= fusion)
  • awk, oer Linux spreadsheet/database programma op de command line (dus iedereen met een Mac heeft het)
    • kan hele grote bestanden aan
    • doet veel "regelgebaseerd", dus zuinig met geheugen
    • echt programmeren
  • pandas in Python

Waarom moet je in dit vak eigenlijk leren werken met spreeadsheets?

Onderzoeks cyclus

  1. Kom met een idee/hypothese/vraag/$\ldots$
  2. verzamel data
  3. schoon je data op
  4. herstructureer je data (meestal in de vorm van numerieke data)
  5. analyse: ga rekenen, doe statistiek, toets je hypothese, $\ldots$
  6. rapporteer

De herstructureer en analyse stappen kunnen vaak prima in een spreadsheet programma.

  • Als je geluk hebt zijn de data-verzamel/opschoon/herstructureer stappen al voor je gedaan.
    • Jullie hebben met de RSS en woordje tel opdracht gezien wat een gedoe dat kan zijn....

Waarom mogen we niet lekker blijven Excelen?

  1. Schaalt niet
    1. Niet naar grote datasets (wil ie niet inlezen)
    2. Niet naar steeds dezelfde taak uitvoeren (want handmatig via GUI commandos geven)
    3. Niet naar echt heavy berekeningen
  2. Beperkte functionaliteit
    1. Bijvoorbeeld niet makkelijk om data op te schonen
      • Kan wel handig in Google Refine.
  3. Integratie met allerlei andere tools
    • Kan natuurlijk heerlijk in Python

Spreadsheet manipulatie in Python met Pandas

Invoer vanuit andere formaten is vaak kinderlijk eenvoudig

import pandas as pd

csvfilename= os.path.join(path, 'names2.csv')
dataframe=pd.DataFrame(all_vk_items)  # all_vk_items is a list of dicts
dataframe.to_csv(csvfilename, encoding='utf-8') # and just write it away