Excel- ja csv-muotoisten datojen avaaminen

In [1]:
#otan käyttöön pandas-ohjelmakirjaston
import pandas as pd

#avaan Excel-datan dataframeen, jonka nimeksi annan df1
df1 = pd.read_excel('http://taanila.fi/data1.xlsx')

#näytän dataframen viisi ensimmäistä riviä
df1.head()
Out[1]:
nro sukup ikä perhe koulutus palveluv palkka johto työtov työymp palkkat työteht työterv lomaosa kuntosa hieroja
0 1 1 38 1 1.0 22.0 3587 3 3.0 3 3 3 NaN NaN NaN NaN
1 2 1 29 2 2.0 10.0 2963 1 5.0 2 1 3 NaN NaN NaN NaN
2 3 1 30 1 1.0 7.0 1989 3 4.0 1 1 3 1.0 NaN NaN NaN
3 4 1 36 2 1.0 14.0 2144 3 3.0 3 3 3 1.0 NaN NaN NaN
4 5 1 24 1 2.0 4.0 2183 2 3.0 2 1 2 1.0 NaN NaN NaN
In [2]:
#avaan csv-muotoisen datan dataframeen, jonka nimeksi annan df2
#data1.csv-tiedostossa on käytetty erottimena pilkun sijasta puolipistettä
df2 = pd.read_csv('http://taanila.fi/data1.csv', delimiter = ';')

#näytän dataframen kolme ensimmäistä riviä:
df2.head(3)
Out[2]:
nro sukupuoli ikä perhe koulutus palvelusvuodet palkka tyytyväisyys johtoon tyytyväisyys työtovereihin tyytyväisyys työympäristöön tyytyväisyys palkkaan tyytyväisyys työtehtäviin työterveyshuolto lomaosake kuntosali hieroja
0 1 1 38 1 1.0 22.0 3587 3 3.0 3 3 3 NaN NaN NaN NaN
1 2 1 29 2 2.0 10.0 2963 1 5.0 2 1 3 NaN NaN NaN NaN
2 3 1 30 1 1.0 7.0 1989 3 4.0 1 1 3 1.0 NaN NaN NaN

Data ei aina aukea yhtä suoraviivaisesti kuin edellisissä esimerkeissä: Excel-data ei välttämättä ala ensimmäisen taulukkovälilehden ensimmäisestä solusta, datan yläpuolella voi olla rivejä, joita ei haluta mukaan jne. Avaamiskomentoja read_excel() ja read_csv() voit tuunata lukuisilla lisäparametreilla. Lisätietoa read_excel ja read_csv toiminnoista:

https://pandas.pydata.org/pandas-docs/stable/generated/pandas.read_excel.html
https://pandas.pydata.org/pandas-docs/stable/generated/pandas.read_csv.html

Pikainen tutustuminen dataan

Voin tutustua aineistoon esimerkiksi seuraavien funktioiden avulla

  • shape näyttää datan rivien ja sarakkeiden lukumäärän
  • count() näyttää muuttujien nimet ja muuttujien ei-tyhjien arvojen lukumäärän
  • describe() näyttää muuttujien tunnuslukuja
  • corr() näyttää muuttujien väliset korrelaatiot</b>

In [3]:
df1.shape
Out[3]:
(82, 16)
In [4]:
df1.count()
Out[4]:
nro         82
sukup       82
ikä         82
perhe       82
koulutus    81
palveluv    80
palkka      82
johto       82
työtov      81
työymp      82
palkkat     82
työteht     82
työterv     47
lomaosa     20
kuntosa      9
hieroja     22
dtype: int64
In [5]:
df1.describe()
Out[5]:
nro sukup ikä perhe koulutus palveluv palkka johto työtov työymp palkkat työteht työterv lomaosa kuntosa hieroja
count 82.000000 82.000000 82.000000 82.000000 81.000000 80.000000 82.000000 82.000000 81.000000 82.000000 82.000000 82.000000 47.0 20.0 9.0 22.0
mean 41.500000 1.231707 37.951220 1.621951 1.987654 12.175000 2563.878049 3.060976 4.061728 3.219512 2.109756 3.195122 1.0 1.0 1.0 1.0
std 23.815261 0.424519 9.773866 0.487884 0.844006 8.807038 849.350302 1.058155 0.826826 1.154961 1.111179 1.047502 0.0 0.0 0.0 0.0
min 1.000000 1.000000 20.000000 1.000000 1.000000 0.000000 1521.000000 1.000000 2.000000 1.000000 1.000000 1.000000 1.0 1.0 1.0 1.0
25% 21.250000 1.000000 31.000000 1.000000 1.000000 3.750000 2027.000000 2.000000 4.000000 3.000000 1.000000 3.000000 1.0 1.0 1.0 1.0
50% 41.500000 1.000000 37.500000 2.000000 2.000000 12.500000 2320.000000 3.000000 4.000000 3.000000 2.000000 3.000000 1.0 1.0 1.0 1.0
75% 61.750000 1.000000 44.000000 2.000000 3.000000 18.250000 2808.000000 4.000000 5.000000 4.000000 3.000000 4.000000 1.0 1.0 1.0 1.0
max 82.000000 2.000000 61.000000 2.000000 4.000000 36.000000 6278.000000 5.000000 5.000000 5.000000 5.000000 5.000000 1.0 1.0 1.0 1.0
In [6]:
df1.corr()
Out[6]:
nro sukup ikä perhe koulutus palveluv palkka johto työtov työymp palkkat työteht työterv lomaosa kuntosa hieroja
nro 1.000000 0.083647 -0.069163 0.027095 -0.050974 -0.153504 -0.192810 0.018371 0.052791 -0.070468 -0.024959 -0.025239 NaN NaN NaN NaN
sukup 0.083647 1.000000 0.154505 0.249334 0.077620 0.143230 -0.215426 0.325442 -0.147959 0.348216 0.337999 0.174702 NaN NaN NaN NaN
ikä -0.069163 0.154505 1.000000 0.412914 -0.157863 0.531559 0.296872 0.120856 0.077554 0.101577 0.072114 0.187848 NaN NaN NaN NaN
perhe 0.027095 0.249334 0.412914 1.000000 0.049670 0.345915 0.239839 0.212600 0.090063 0.280548 0.214119 0.315220 NaN NaN NaN NaN
koulutus -0.050974 0.077620 -0.157863 0.049670 1.000000 -0.145238 0.422408 0.140477 -0.016793 0.296007 0.254002 0.158809 NaN NaN NaN NaN
palveluv -0.153504 0.143230 0.531559 0.345915 -0.145238 1.000000 0.243139 0.073422 0.019732 0.126504 0.004420 0.143100 NaN NaN NaN NaN
palkka -0.192810 -0.215426 0.296872 0.239839 0.422408 0.243139 1.000000 0.174133 0.117468 0.267615 0.314889 0.307886 NaN NaN NaN NaN
johto 0.018371 0.325442 0.120856 0.212600 0.140477 0.073422 0.174133 1.000000 0.223328 0.584918 0.540228 0.456933 NaN NaN NaN NaN
työtov 0.052791 -0.147959 0.077554 0.090063 -0.016793 0.019732 0.117468 0.223328 1.000000 0.285940 0.086845 0.308939 NaN NaN NaN NaN
työymp -0.070468 0.348216 0.101577 0.280548 0.296007 0.126504 0.267615 0.584918 0.285940 1.000000 0.538940 0.576431 NaN NaN NaN NaN
palkkat -0.024959 0.337999 0.072114 0.214119 0.254002 0.004420 0.314889 0.540228 0.086845 0.538940 1.000000 0.479884 NaN NaN NaN NaN
työteht -0.025239 0.174702 0.187848 0.315220 0.158809 0.143100 0.307886 0.456933 0.308939 0.576431 0.479884 1.000000 NaN NaN NaN NaN
työterv NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
lomaosa NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
kuntosa NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
hieroja NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN