Mappestruktur (forberedelse)#

Når vi programmerer og jobber med data prøver vi ofte ut mange forskjellige framgangsmåter. Det kan føre til at vi lager en hel rekke filer med kryptiske navn, lagt i mapper som vi glemmer hva heter.

Her introduserer vi en mappestruktur og filnavnstruktur vi kan følge for å unngå slike problemer.

Forklaring#

Denne filstrukturen er laget for å passe i HON2200 - Data-drevne prosjekter. Den er en nedstrippet variant av cookiecutter-data-science. Målet er at dere skal få organisert filene på en ryddig måte slik at ikke data blandes med kode som er i endring, og slik at den endelige rapporten ikke blandes sammen med utforskende notebooks. Det er mye arbeid underveis som ikke trenger å være med i en endelig rapport.

Hvordan denne strukturen skal se ut må vi gjerne diskutere. Men siden vi skal jobbe sammen i team er det omtrent like viktig at strukturen er konsistent som at den er optimal. I mappestrukturen ligger det inne noen eksempler, slik at det skal være tålelig å sette seg inn i.

Filstrukturen er som følger:

mitt_prosjekt
    │ 
    ├── data             <- Her legger vi data som skal brukes
    │                       i prosjektet. Om det er lite data kan
    │                       vi legge det på Github. Om det er
    │                       mye kan vi ikke sjekke det inn på github, men 
    │                       blir nødt til å lagre et annet sted. 
    │
    ├── notebooks        <- Her legger vi notebooks som vi bruker 
    │                       i utforskning av data. Bruk navnekonvensjon 
    │                       med tall-initialer-beskrivelse.ipynb, eks. 
    │                       002-has-utforske-iris-data.ipynb
    │    
    ├── report           <- Her skriver vi den ferdige rapporten. Den 
    |                       eksporteres til slutt som PDF.   
    │ 
    └── requirements.txt <- Fil som lister opp hvilke python-pakker vi trenger 
                            for å kjøre koden i prosjektet. 

requirements.txt#

Når vi lager et nytt prosjekt, er det god skikk å lage en fil, requirements.txt, som lister opp alle de pakkene som må installeres for at koden i prosjektet skal kunne kjøre. I et prosjekt kan man f.eks trenge følgende pakker:

- pandas
- numpy 
- matplotlib 

Dermed bør vi lage en fil requirements.txt med følgende innhold:

pandas
numpy 
matplotlib

For å installere pakkene kjører vi

pip install -r requirements.txt