Gå direkt till textinnehållet

Så fixade Python valjobbet

Ett arbete som hade krävt två veckors jobb i Excel tog två dagar med hjälp av programmering. Johan Ekman, datajournalist på Dagens Samhälle, berättar hur de gjorde.

"Valmyndighetens valdata som släpps på söndagsnatten efter valdagen i september presenteras på samma sätt varje gång. Det handlar om tre set av data som består av tre gånger 290 filer, alltså en fil per kommun, per val. Om vi tar Upplands Väsby som exempel har man alltså en fil för kommunen, en för landstingsvalet och en för riksdagsvalet. Det handlar om väldigt mycket material, totalt sett är det hundratusentals rader med data. Eftersom valresultatet släpps på söndagsnatten och vi trycker på onsdagar har vi normalt bara två hela arbetsdagar för att hinna göra research, sy i hop intervjuer för våra vinklar samt hinna paketera datan för layout och redigering innan vi trycker. Det här har omöjliggjort unika vinklar tidigare och det ville vi ändra på.

Den här gången hade jag en idé att man kunde börja förbereda sig två veckor innan valet genom att kolla igenom 2014 års valdata, för att testa vilka vinklar som skulle gå att genomföra och ta reda på exakt vad det är för typ av data som kommer och hur den ser ut. Efter att det förarbetet var gjort kunde vi på redaktionsmötet inför valet bestämma oss för att sy ihop 13 vinklar. Det vi främst valde att dra på var fördelningen mellan blocken eftersom det var en stor fråga innan valet. I flera av de granskningar vi hade gjort inför hade vi också satt ljuset på rekordantalet blocköverskridande samarbeten som fanns ute i landet. Vår reporter Johan Delby hade exempelvis ställt sig frågan om det går bättre i de kommuner där man redan innan hade blocköverskridande samarbeten? Blir de partierna bättre behandlade av väljarna?

På måndagsmorgonen när reportrarna kom till jobbet hade jag förberett datan för alla vinklar. Allting sparades i separata mappar på vår server, där exempelvis Johan Delby fick två färdiga mappar att börja arbeta med. Han visste alltså innan precis vad han skulle få för data att arbeta med och hur det skulle se ut. I varje mapp fanns också en extra fil med grunddata så han skulle kunna hitta bra ’case’ ute i kommunerna som han kunde börja ringa på. Sammanlagt var vi nio reportrar som arbetade med detta, och medan de andra började ringa på vinklarna kunde jag trippel-kolla alla siffrorna. Utöver det fick också redigeringen en egen mapp med filer som de kunde gå till för grafik, dem döpte vi till "förstauppslaget" samt namnet på ansvarig reporter så allt skulle vara tydligt när det skulle gå fort.

Det verktyg jag använde mest var Python, det sjunde mest populära kodsspråket i världen, samt Jupyter Notebook. Det sistnämnda kan man beskriva som ett slags dokumenthanterare som gör det lättare att läsa, skriva och förklara kod. Jag programmerade alltså i Python och använde Jupyter som ett slags presentationsverktyg där jag kunde behandla bilder och kod, samt hålla koll på var jag hittat alla uppgifter som hörde till respektive vinkel. Om du är van att hantera Excel skulle jag gissa att det skulle ta ett år för en ambitiös person att lära sig så pass mycket om programmering och kod att man skulle kunna göra det här själv. Det finns ingen magi i det här, man behöver inte lära sig matematik, det är egentligen samma princip som att hantera data i Excel eller något annat verktyg”.
                                                                  Berättat för Klas Granström

 

SÅ GJORDES JOBBET I SEX STEG:

  1. Strukturerade alla vinklar efter vilken reporter som skulle skriva om dem.
  2. Varje vinkel blev ett eget kapitel i en Jupyter Notebook.
  3. Kontrollerade vinklarna med beräkningar på gammal valdata (från 2014 och 2010).
  4. Dubbelkoll och debuggande.
  5. Inväntade valnatten.
  6. Tryckte ”enter”, kl 23.30 natten till måndag.
Profilen

”Socialreportaget finns knappt längre”

Christoffer Hjalmarsson har levt 36 dagar på gatan och suttit 30 dagar i fängelse.
Fler profiler
Fler avsnitt