In [1]:
from datetime import datetime
print(f'Päivitetty {datetime.now()}')
Päivitetty 2022-05-24 10:39:12.496034

Datan muuntaminen

Dataan voi olla tarvetta tehdä monenlaisia muunnoksia:

  • Sarakkeiden otsikoiden muuttaminen (usein pitkät otsikot kannattaa muuttaa lyhyemmiksi)
  • Tarpeettomien sarkkeiden poistaminen
  • Indeksin korvaaminen jonkin sarakkeen arvoilla
  • Virheellisten arvojen korjaaminen
  • Uusien muuttujien (sarakkeiden) laskeminen olemassa olevien sarakkeiden perusteella
  • Puuttuvia arvoja sisältävien rivien poistaminen (kuvailevasssa ja selittävässä analytiikassa tämä ei yleensä ole tarpeen paitsi korrelaatiokertoimen merkitsevyyden testauksessa)
In [2]:
# Tuon data-analytiikan peruskirjaston
import pandas as pd

# Avaan datan
df = pd.read_excel('https://taanila.fi/data1.xlsx')

# Varmistan että kaikki rivit näytetään tulosteissa
pd.options.display.max_rows = None

df
Out[2]:
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
5 6 2 31 2 2.0 14.0 1910 4 4.0 5 2 4 1.0 1.0 NaN NaN
6 7 1 49 1 2.0 16.0 2066 3 5.0 4 2 2 NaN NaN 1.0 NaN
7 8 1 55 1 1.0 0.0 2066 3 5.0 3 1 3 1.0 NaN NaN NaN
8 9 1 40 2 1.0 23.0 2768 2 4.0 4 2 4 NaN 1.0 NaN NaN
9 10 1 33 1 1.0 16.0 2106 3 2.0 1 1 1 1.0 NaN NaN NaN
10 11 1 39 2 1.0 22.0 2651 3 5.0 3 1 3 NaN NaN NaN NaN
11 12 1 40 2 3.0 21.0 2846 3 5.0 3 1 2 NaN 1.0 NaN 1.0
12 13 1 35 2 3.0 15.0 2808 3 5.0 3 1 4 NaN 1.0 NaN NaN
13 14 1 58 2 3.0 21.0 3587 4 5.0 4 1 3 NaN NaN NaN NaN
14 15 1 53 2 3.0 12.0 3393 4 4.0 4 4 4 NaN 1.0 NaN NaN
15 16 2 42 2 3.0 23.0 2691 3 3.0 3 3 3 1.0 NaN NaN 1.0
16 17 1 26 1 4.0 2.0 5225 5 5.0 5 4 5 NaN NaN 1.0 NaN
17 18 2 38 2 3.0 17.0 2729 4 3.0 4 2 1 NaN NaN NaN NaN
18 19 1 42 1 3.0 20.0 2925 2 3.0 4 1 4 1.0 NaN NaN 1.0
19 20 2 40 2 2.0 13.0 2457 3 3.0 4 3 2 1.0 NaN NaN 1.0
20 21 2 40 2 3.0 20.0 2691 2 4.0 5 3 4 NaN NaN NaN NaN
21 22 1 47 2 3.0 17.0 4874 2 4.0 3 2 4 NaN 1.0 NaN NaN
22 23 1 44 2 1.0 27.0 3510 4 4.0 4 4 4 NaN 1.0 NaN NaN
23 24 1 36 1 3.0 7.0 4446 3 4.0 3 4 5 NaN NaN NaN NaN
24 25 1 43 2 3.0 1.0 2925 4 4.0 4 4 4 NaN 1.0 NaN NaN
25 26 1 26 1 2.0 3.0 1521 2 4.0 2 1 3 1.0 NaN 1.0 1.0
26 27 1 26 1 2.0 2.0 1989 2 4.0 2 2 3 1.0 NaN NaN 1.0
27 28 2 56 1 1.0 15.0 2223 3 4.0 3 2 4 1.0 NaN NaN 1.0
28 29 1 47 2 2.0 23.0 2808 2 4.0 3 1 4 1.0 NaN NaN NaN
29 30 1 21 1 NaN NaN 1949 4 4.0 3 3 2 1.0 NaN NaN NaN
30 31 1 21 1 3.0 1.0 2340 4 5.0 3 4 2 1.0 NaN 1.0 1.0
31 32 1 45 2 1.0 24.0 2925 4 4.0 4 3 4 NaN 1.0 NaN NaN
32 33 1 59 2 3.0 15.0 6278 4 4.0 5 4 4 NaN 1.0 NaN NaN
33 34 1 37 2 1.0 14.0 2183 1 5.0 1 1 2 1.0 NaN NaN 1.0
34 35 1 28 2 2.0 5.0 1989 3 4.0 3 3 3 1.0 NaN 1.0 1.0
35 36 1 31 2 3.0 0.0 1559 2 4.0 3 1 3 1.0 NaN NaN NaN
36 37 2 56 2 2.0 17.0 2729 5 5.0 5 5 5 NaN NaN NaN 1.0
37 38 1 50 2 1.0 1.0 2027 5 5.0 4 1 4 1.0 1.0 NaN NaN
38 39 1 30 1 2.0 10.0 2300 3 5.0 3 3 4 NaN NaN NaN NaN
39 40 1 32 1 1.0 3.0 2106 1 5.0 4 1 3 1.0 NaN NaN NaN
40 41 1 33 2 3.0 9.0 2846 3 3.0 4 2 3 1.0 NaN NaN NaN
41 42 1 29 1 2.0 6.0 2534 3 4.0 3 1 2 1.0 NaN NaN NaN
42 43 2 40 2 3.0 12.0 2144 4 4.0 4 4 4 NaN 1.0 NaN NaN
43 44 1 30 1 2.0 7.0 2223 2 3.0 4 1 3 1.0 NaN NaN 1.0
44 45 1 55 2 1.0 35.0 2651 4 5.0 4 2 4 1.0 NaN NaN 1.0
45 46 2 51 2 1.0 28.0 1989 3 3.0 2 2 3 1.0 NaN NaN 1.0
46 47 2 22 1 3.0 21.0 1872 3 3.0 4 1 3 NaN NaN 1.0 NaN
47 48 1 34 2 1.0 18.0 2183 4 5.0 4 1 3 NaN NaN NaN NaN
48 49 1 27 2 2.0 7.0 2729 4 4.0 3 3 5 NaN NaN 1.0 NaN
49 50 1 29 1 3.0 7.0 2340 3 4.0 3 2 3 1.0 NaN NaN NaN
50 51 2 39 2 2.0 10.0 2106 4 5.0 5 4 5 NaN 1.0 NaN NaN
51 52 1 41 2 1.0 18.0 2261 5 5.0 5 2 5 NaN 1.0 NaN NaN
52 53 1 44 2 1.0 3.0 1989 1 2.0 2 1 1 1.0 NaN NaN NaN
53 54 1 25 1 2.0 1.0 1559 2 4.0 3 1 2 1.0 NaN NaN NaN
54 55 2 45 2 1.0 17.0 2417 3 5.0 4 3 3 NaN NaN NaN 1.0
55 56 2 31 2 1.0 6.0 1949 4 4.0 4 3 3 1.0 NaN NaN 1.0
56 57 1 61 2 2.0 36.0 3119 2 NaN 2 1 5 1.0 NaN NaN 1.0
57 58 1 38 2 2.0 NaN 2574 2 3.0 1 1 2 1.0 NaN NaN 1.0
58 59 1 20 1 2.0 1.0 2261 3 4.0 3 2 3 NaN NaN NaN NaN
59 60 1 31 1 1.0 10.0 2144 4 4.0 3 1 3 1.0 NaN NaN NaN
60 61 1 44 1 1.0 19.0 2183 2 2.0 1 1 2 1.0 NaN NaN NaN
61 62 1 40 2 1.0 0.0 1872 2 3.0 1 2 3 1.0 NaN NaN NaN
62 63 2 51 2 2.0 10.0 1872 4 3.0 2 2 3 1.0 NaN NaN NaN
63 64 2 44 1 2.0 1.0 1715 4 4.0 3 2 3 1.0 NaN NaN 1.0
64 65 2 35 2 2.0 17.0 2691 4 4.0 5 2 4 1.0 NaN NaN 1.0
65 66 2 37 2 1.0 16.0 2027 5 5.0 5 4 5 1.0 1.0 NaN NaN
66 67 1 37 2 4.0 8.0 5069 3 4.0 3 2 2 1.0 1.0 NaN 1.0
67 68 1 33 2 3.0 7.0 2417 2 4.0 3 1 4 NaN NaN NaN NaN
68 69 1 28 2 2.0 1.0 3510 4 5.0 3 1 4 NaN NaN NaN NaN
69 70 1 52 2 2.0 22.0 3119 3 4.0 3 2 2 1.0 1.0 NaN 1.0
70 71 1 34 2 2.0 1.0 2495 3 5.0 5 3 4 NaN 1.0 NaN NaN
71 72 1 46 2 2.0 23.0 3470 3 5.0 5 3 4 NaN 1.0 NaN NaN
72 73 2 40 2 3.0 2.0 2027 5 3.0 4 3 4 1.0 NaN NaN NaN
73 74 1 45 2 1.0 20.0 2846 3 5.0 1 1 3 1.0 NaN NaN NaN
74 75 1 40 1 1.0 1.0 1949 1 5.0 1 1 1 1.0 NaN NaN NaN
75 76 1 37 1 2.0 15.0 1598 1 5.0 1 1 1 1.0 NaN NaN NaN
76 77 1 39 1 2.0 22.0 2183 4 5.0 3 1 2 NaN NaN NaN NaN
77 78 1 22 1 3.0 0.0 1598 4 4.0 4 3 4 NaN 1.0 1.0 NaN
78 79 1 33 1 1.0 2.0 1638 1 3.0 2 1 2 1.0 NaN NaN NaN
79 80 1 27 1 2.0 7.0 2612 3 4.0 3 3 3 1.0 NaN 1.0 NaN
80 81 1 35 2 2.0 16.0 2808 3 4.0 3 3 3 NaN NaN NaN NaN
81 82 2 35 2 3.0 15.0 2183 3 4.0 4 3 4 1.0 NaN NaN NaN

Sarakkeiden otsikot

In [3]:
# Jos haluan muuttaa sarakkeiden otsikoita, niin voin hyödyntää sarakeotsikoiden listaa
df.columns
Out[3]:
Index(['nro', 'sukup', 'ikä', 'perhe', 'koulutus', 'palveluv', 'palkka',
       'johto', 'työtov', 'työymp', 'palkkat', 'työteht', 'työterv', 'lomaosa',
       'kuntosa', 'hieroja'],
      dtype='object')

Lista on tärkeä tietorakenne. Lista on aina hakasulkujen sisällä.

In [4]:
# Voin kopioida tähän sarakeotsikoiden listan ja muuttaa haluamani otsikot
df.columns = ['nro', 'sukupuoli', 'ikä', 'perhesuhde', 'koulutus', 'palveluv', 'palkka',
       'johto', 'työtov', 'työymp', 'palkkat', 'työteht', 'työterv', 'lomaosa',
       'kuntosa', 'hieroja']

# Tarkistan onnistuiko otsikoiden muuttaminen (sukupuoli, perhesuhde)
df.columns
Out[4]:
Index(['nro', 'sukupuoli', 'ikä', 'perhesuhde', 'koulutus', 'palveluv',
       'palkka', 'johto', 'työtov', 'työymp', 'palkkat', 'työteht', 'työterv',
       'lomaosa', 'kuntosa', 'hieroja'],
      dtype='object')

Dictionary eli sanakirja on myös tärkeä tietorakenne.

  • Sanakirja on aina aaltosulkujen sisällä.
  • Sanakirja koostuu pareista ja parin jäsenet erotetaan toisistaan kaksoispisteellä.
In [5]:
# Voin vaihtaa sarakkeiden otsikoita myös rename()-toiminnolla
# Huomaa sanakirjan (dictionary) käyttö
df = df.rename(columns = {'sukupuoli':'sukup', 'perhesuhde':'perhe'})

# Tarkistan onnistuiko sarakeotsikoiden muuttaminen (sukup, perhe)
df.columns
Out[5]:
Index(['nro', 'sukup', 'ikä', 'perhe', 'koulutus', 'palveluv', 'palkka',
       'johto', 'työtov', 'työymp', 'palkkat', 'työteht', 'työterv', 'lomaosa',
       'kuntosa', 'hieroja'],
      dtype='object')

Muuttujien poistaminen

In [6]:
# drop-funktiolla voin poistaa sarakkeita
# drop poistaa oletuksena rivejä (axis=0), mutta haluan poistaa sarakkeita (axis=1)
df1 = df.drop(['työterv', 'lomaosa', 'kuntosa', 'hieroja'], axis=1)
df1
Out[6]:
nro sukup ikä perhe koulutus palveluv palkka johto työtov työymp palkkat työteht
0 1 1 38 1 1.0 22.0 3587 3 3.0 3 3 3
1 2 1 29 2 2.0 10.0 2963 1 5.0 2 1 3
2 3 1 30 1 1.0 7.0 1989 3 4.0 1 1 3
3 4 1 36 2 1.0 14.0 2144 3 3.0 3 3 3
4 5 1 24 1 2.0 4.0 2183 2 3.0 2 1 2
5 6 2 31 2 2.0 14.0 1910 4 4.0 5 2 4
6 7 1 49 1 2.0 16.0 2066 3 5.0 4 2 2
7 8 1 55 1 1.0 0.0 2066 3 5.0 3 1 3
8 9 1 40 2 1.0 23.0 2768 2 4.0 4 2 4
9 10 1 33 1 1.0 16.0 2106 3 2.0 1 1 1
10 11 1 39 2 1.0 22.0 2651 3 5.0 3 1 3
11 12 1 40 2 3.0 21.0 2846 3 5.0 3 1 2
12 13 1 35 2 3.0 15.0 2808 3 5.0 3 1 4
13 14 1 58 2 3.0 21.0 3587 4 5.0 4 1 3
14 15 1 53 2 3.0 12.0 3393 4 4.0 4 4 4
15 16 2 42 2 3.0 23.0 2691 3 3.0 3 3 3
16 17 1 26 1 4.0 2.0 5225 5 5.0 5 4 5
17 18 2 38 2 3.0 17.0 2729 4 3.0 4 2 1
18 19 1 42 1 3.0 20.0 2925 2 3.0 4 1 4
19 20 2 40 2 2.0 13.0 2457 3 3.0 4 3 2
20 21 2 40 2 3.0 20.0 2691 2 4.0 5 3 4
21 22 1 47 2 3.0 17.0 4874 2 4.0 3 2 4
22 23 1 44 2 1.0 27.0 3510 4 4.0 4 4 4
23 24 1 36 1 3.0 7.0 4446 3 4.0 3 4 5
24 25 1 43 2 3.0 1.0 2925 4 4.0 4 4 4
25 26 1 26 1 2.0 3.0 1521 2 4.0 2 1 3
26 27 1 26 1 2.0 2.0 1989 2 4.0 2 2 3
27 28 2 56 1 1.0 15.0 2223 3 4.0 3 2 4
28 29 1 47 2 2.0 23.0 2808 2 4.0 3 1 4
29 30 1 21 1 NaN NaN 1949 4 4.0 3 3 2
30 31 1 21 1 3.0 1.0 2340 4 5.0 3 4 2
31 32 1 45 2 1.0 24.0 2925 4 4.0 4 3 4
32 33 1 59 2 3.0 15.0 6278 4 4.0 5 4 4
33 34 1 37 2 1.0 14.0 2183 1 5.0 1 1 2
34 35 1 28 2 2.0 5.0 1989 3 4.0 3 3 3
35 36 1 31 2 3.0 0.0 1559 2 4.0 3 1 3
36 37 2 56 2 2.0 17.0 2729 5 5.0 5 5 5
37 38 1 50 2 1.0 1.0 2027 5 5.0 4 1 4
38 39 1 30 1 2.0 10.0 2300 3 5.0 3 3 4
39 40 1 32 1 1.0 3.0 2106 1 5.0 4 1 3
40 41 1 33 2 3.0 9.0 2846 3 3.0 4 2 3
41 42 1 29 1 2.0 6.0 2534 3 4.0 3 1 2
42 43 2 40 2 3.0 12.0 2144 4 4.0 4 4 4
43 44 1 30 1 2.0 7.0 2223 2 3.0 4 1 3
44 45 1 55 2 1.0 35.0 2651 4 5.0 4 2 4
45 46 2 51 2 1.0 28.0 1989 3 3.0 2 2 3
46 47 2 22 1 3.0 21.0 1872 3 3.0 4 1 3
47 48 1 34 2 1.0 18.0 2183 4 5.0 4 1 3
48 49 1 27 2 2.0 7.0 2729 4 4.0 3 3 5
49 50 1 29 1 3.0 7.0 2340 3 4.0 3 2 3
50 51 2 39 2 2.0 10.0 2106 4 5.0 5 4 5
51 52 1 41 2 1.0 18.0 2261 5 5.0 5 2 5
52 53 1 44 2 1.0 3.0 1989 1 2.0 2 1 1
53 54 1 25 1 2.0 1.0 1559 2 4.0 3 1 2
54 55 2 45 2 1.0 17.0 2417 3 5.0 4 3 3
55 56 2 31 2 1.0 6.0 1949 4 4.0 4 3 3
56 57 1 61 2 2.0 36.0 3119 2 NaN 2 1 5
57 58 1 38 2 2.0 NaN 2574 2 3.0 1 1 2
58 59 1 20 1 2.0 1.0 2261 3 4.0 3 2 3
59 60 1 31 1 1.0 10.0 2144 4 4.0 3 1 3
60 61 1 44 1 1.0 19.0 2183 2 2.0 1 1 2
61 62 1 40 2 1.0 0.0 1872 2 3.0 1 2 3
62 63 2 51 2 2.0 10.0 1872 4 3.0 2 2 3
63 64 2 44 1 2.0 1.0 1715 4 4.0 3 2 3
64 65 2 35 2 2.0 17.0 2691 4 4.0 5 2 4
65 66 2 37 2 1.0 16.0 2027 5 5.0 5 4 5
66 67 1 37 2 4.0 8.0 5069 3 4.0 3 2 2
67 68 1 33 2 3.0 7.0 2417 2 4.0 3 1 4
68 69 1 28 2 2.0 1.0 3510 4 5.0 3 1 4
69 70 1 52 2 2.0 22.0 3119 3 4.0 3 2 2
70 71 1 34 2 2.0 1.0 2495 3 5.0 5 3 4
71 72 1 46 2 2.0 23.0 3470 3 5.0 5 3 4
72 73 2 40 2 3.0 2.0 2027 5 3.0 4 3 4
73 74 1 45 2 1.0 20.0 2846 3 5.0 1 1 3
74 75 1 40 1 1.0 1.0 1949 1 5.0 1 1 1
75 76 1 37 1 2.0 15.0 1598 1 5.0 1 1 1
76 77 1 39 1 2.0 22.0 2183 4 5.0 3 1 2
77 78 1 22 1 3.0 0.0 1598 4 4.0 4 3 4
78 79 1 33 1 1.0 2.0 1638 1 3.0 2 1 2
79 80 1 27 1 2.0 7.0 2612 3 4.0 3 3 3
80 81 1 35 2 2.0 16.0 2808 3 4.0 3 3 3
81 82 2 35 2 3.0 15.0 2183 3 4.0 4 3 4

Indeksi

Tietokehikon (dataframe) indeksi (index) on vasemmanpuoleisin sarake. Oletuksena indeksi on juokseva järjestysnumero, joka alkaa nollasta. Voin halutessani siirtää jonkin muuttujista indeksiin.

In [7]:
# Sarakkeen siirtäminen indeksiin (vasemmanpuoleisin lihavoitu sarake)
df1 = df1.set_index('nro')
df1
Out[7]:
sukup ikä perhe koulutus palveluv palkka johto työtov työymp palkkat työteht
nro
1 1 38 1 1.0 22.0 3587 3 3.0 3 3 3
2 1 29 2 2.0 10.0 2963 1 5.0 2 1 3
3 1 30 1 1.0 7.0 1989 3 4.0 1 1 3
4 1 36 2 1.0 14.0 2144 3 3.0 3 3 3
5 1 24 1 2.0 4.0 2183 2 3.0 2 1 2
6 2 31 2 2.0 14.0 1910 4 4.0 5 2 4
7 1 49 1 2.0 16.0 2066 3 5.0 4 2 2
8 1 55 1 1.0 0.0 2066 3 5.0 3 1 3
9 1 40 2 1.0 23.0 2768 2 4.0 4 2 4
10 1 33 1 1.0 16.0 2106 3 2.0 1 1 1
11 1 39 2 1.0 22.0 2651 3 5.0 3 1 3
12 1 40 2 3.0 21.0 2846 3 5.0 3 1 2
13 1 35 2 3.0 15.0 2808 3 5.0 3 1 4
14 1 58 2 3.0 21.0 3587 4 5.0 4 1 3
15 1 53 2 3.0 12.0 3393 4 4.0 4 4 4
16 2 42 2 3.0 23.0 2691 3 3.0 3 3 3
17 1 26 1 4.0 2.0 5225 5 5.0 5 4 5
18 2 38 2 3.0 17.0 2729 4 3.0 4 2 1
19 1 42 1 3.0 20.0 2925 2 3.0 4 1 4
20 2 40 2 2.0 13.0 2457 3 3.0 4 3 2
21 2 40 2 3.0 20.0 2691 2 4.0 5 3 4
22 1 47 2 3.0 17.0 4874 2 4.0 3 2 4
23 1 44 2 1.0 27.0 3510 4 4.0 4 4 4
24 1 36 1 3.0 7.0 4446 3 4.0 3 4 5
25 1 43 2 3.0 1.0 2925 4 4.0 4 4 4
26 1 26 1 2.0 3.0 1521 2 4.0 2 1 3
27 1 26 1 2.0 2.0 1989 2 4.0 2 2 3
28 2 56 1 1.0 15.0 2223 3 4.0 3 2 4
29 1 47 2 2.0 23.0 2808 2 4.0 3 1 4
30 1 21 1 NaN NaN 1949 4 4.0 3 3 2
31 1 21 1 3.0 1.0 2340 4 5.0 3 4 2
32 1 45 2 1.0 24.0 2925 4 4.0 4 3 4
33 1 59 2 3.0 15.0 6278 4 4.0 5 4 4
34 1 37 2 1.0 14.0 2183 1 5.0 1 1 2
35 1 28 2 2.0 5.0 1989 3 4.0 3 3 3
36 1 31 2 3.0 0.0 1559 2 4.0 3 1 3
37 2 56 2 2.0 17.0 2729 5 5.0 5 5 5
38 1 50 2 1.0 1.0 2027 5 5.0 4 1 4
39 1 30 1 2.0 10.0 2300 3 5.0 3 3 4
40 1 32 1 1.0 3.0 2106 1 5.0 4 1 3
41 1 33 2 3.0 9.0 2846 3 3.0 4 2 3
42 1 29 1 2.0 6.0 2534 3 4.0 3 1 2
43 2 40 2 3.0 12.0 2144 4 4.0 4 4 4
44 1 30 1 2.0 7.0 2223 2 3.0 4 1 3
45 1 55 2 1.0 35.0 2651 4 5.0 4 2 4
46 2 51 2 1.0 28.0 1989 3 3.0 2 2 3
47 2 22 1 3.0 21.0 1872 3 3.0 4 1 3
48 1 34 2 1.0 18.0 2183 4 5.0 4 1 3
49 1 27 2 2.0 7.0 2729 4 4.0 3 3 5
50 1 29 1 3.0 7.0 2340 3 4.0 3 2 3
51 2 39 2 2.0 10.0 2106 4 5.0 5 4 5
52 1 41 2 1.0 18.0 2261 5 5.0 5 2 5
53 1 44 2 1.0 3.0 1989 1 2.0 2 1 1
54 1 25 1 2.0 1.0 1559 2 4.0 3 1 2
55 2 45 2 1.0 17.0 2417 3 5.0 4 3 3
56 2 31 2 1.0 6.0 1949 4 4.0 4 3 3
57 1 61 2 2.0 36.0 3119 2 NaN 2 1 5
58 1 38 2 2.0 NaN 2574 2 3.0 1 1 2
59 1 20 1 2.0 1.0 2261 3 4.0 3 2 3
60 1 31 1 1.0 10.0 2144 4 4.0 3 1 3
61 1 44 1 1.0 19.0 2183 2 2.0 1 1 2
62 1 40 2 1.0 0.0 1872 2 3.0 1 2 3
63 2 51 2 2.0 10.0 1872 4 3.0 2 2 3
64 2 44 1 2.0 1.0 1715 4 4.0 3 2 3
65 2 35 2 2.0 17.0 2691 4 4.0 5 2 4
66 2 37 2 1.0 16.0 2027 5 5.0 5 4 5
67 1 37 2 4.0 8.0 5069 3 4.0 3 2 2
68 1 33 2 3.0 7.0 2417 2 4.0 3 1 4
69 1 28 2 2.0 1.0 3510 4 5.0 3 1 4
70 1 52 2 2.0 22.0 3119 3 4.0 3 2 2
71 1 34 2 2.0 1.0 2495 3 5.0 5 3 4
72 1 46 2 2.0 23.0 3470 3 5.0 5 3 4
73 2 40 2 3.0 2.0 2027 5 3.0 4 3 4
74 1 45 2 1.0 20.0 2846 3 5.0 1 1 3
75 1 40 1 1.0 1.0 1949 1 5.0 1 1 1
76 1 37 1 2.0 15.0 1598 1 5.0 1 1 1
77 1 39 1 2.0 22.0 2183 4 5.0 3 1 2
78 1 22 1 3.0 0.0 1598 4 4.0 4 3 4
79 1 33 1 1.0 2.0 1638 1 3.0 2 1 2
80 1 27 1 2.0 7.0 2612 3 4.0 3 3 3
81 1 35 2 2.0 16.0 2808 3 4.0 3 3 3
82 2 35 2 3.0 15.0 2183 3 4.0 4 3 4
In [8]:
# Voin myös siirtää indeksiksi siirretyn takaisin tavalliseksi sarakkeeksi
df1 = df1.reset_index()
df1
Out[8]:
nro sukup ikä perhe koulutus palveluv palkka johto työtov työymp palkkat työteht
0 1 1 38 1 1.0 22.0 3587 3 3.0 3 3 3
1 2 1 29 2 2.0 10.0 2963 1 5.0 2 1 3
2 3 1 30 1 1.0 7.0 1989 3 4.0 1 1 3
3 4 1 36 2 1.0 14.0 2144 3 3.0 3 3 3
4 5 1 24 1 2.0 4.0 2183 2 3.0 2 1 2
5 6 2 31 2 2.0 14.0 1910 4 4.0 5 2 4
6 7 1 49 1 2.0 16.0 2066 3 5.0 4 2 2
7 8 1 55 1 1.0 0.0 2066 3 5.0 3 1 3
8 9 1 40 2 1.0 23.0 2768 2 4.0 4 2 4
9 10 1 33 1 1.0 16.0 2106 3 2.0 1 1 1
10 11 1 39 2 1.0 22.0 2651 3 5.0 3 1 3
11 12 1 40 2 3.0 21.0 2846 3 5.0 3 1 2
12 13 1 35 2 3.0 15.0 2808 3 5.0 3 1 4
13 14 1 58 2 3.0 21.0 3587 4 5.0 4 1 3
14 15 1 53 2 3.0 12.0 3393 4 4.0 4 4 4
15 16 2 42 2 3.0 23.0 2691 3 3.0 3 3 3
16 17 1 26 1 4.0 2.0 5225 5 5.0 5 4 5
17 18 2 38 2 3.0 17.0 2729 4 3.0 4 2 1
18 19 1 42 1 3.0 20.0 2925 2 3.0 4 1 4
19 20 2 40 2 2.0 13.0 2457 3 3.0 4 3 2
20 21 2 40 2 3.0 20.0 2691 2 4.0 5 3 4
21 22 1 47 2 3.0 17.0 4874 2 4.0 3 2 4
22 23 1 44 2 1.0 27.0 3510 4 4.0 4 4 4
23 24 1 36 1 3.0 7.0 4446 3 4.0 3 4 5
24 25 1 43 2 3.0 1.0 2925 4 4.0 4 4 4
25 26 1 26 1 2.0 3.0 1521 2 4.0 2 1 3
26 27 1 26 1 2.0 2.0 1989 2 4.0 2 2 3
27 28 2 56 1 1.0 15.0 2223 3 4.0 3 2 4
28 29 1 47 2 2.0 23.0 2808 2 4.0 3 1 4
29 30 1 21 1 NaN NaN 1949 4 4.0 3 3 2
30 31 1 21 1 3.0 1.0 2340 4 5.0 3 4 2
31 32 1 45 2 1.0 24.0 2925 4 4.0 4 3 4
32 33 1 59 2 3.0 15.0 6278 4 4.0 5 4 4
33 34 1 37 2 1.0 14.0 2183 1 5.0 1 1 2
34 35 1 28 2 2.0 5.0 1989 3 4.0 3 3 3
35 36 1 31 2 3.0 0.0 1559 2 4.0 3 1 3
36 37 2 56 2 2.0 17.0 2729 5 5.0 5 5 5
37 38 1 50 2 1.0 1.0 2027 5 5.0 4 1 4
38 39 1 30 1 2.0 10.0 2300 3 5.0 3 3 4
39 40 1 32 1 1.0 3.0 2106 1 5.0 4 1 3
40 41 1 33 2 3.0 9.0 2846 3 3.0 4 2 3
41 42 1 29 1 2.0 6.0 2534 3 4.0 3 1 2
42 43 2 40 2 3.0 12.0 2144 4 4.0 4 4 4
43 44 1 30 1 2.0 7.0 2223 2 3.0 4 1 3
44 45 1 55 2 1.0 35.0 2651 4 5.0 4 2 4
45 46 2 51 2 1.0 28.0 1989 3 3.0 2 2 3
46 47 2 22 1 3.0 21.0 1872 3 3.0 4 1 3
47 48 1 34 2 1.0 18.0 2183 4 5.0 4 1 3
48 49 1 27 2 2.0 7.0 2729 4 4.0 3 3 5
49 50 1 29 1 3.0 7.0 2340 3 4.0 3 2 3
50 51 2 39 2 2.0 10.0 2106 4 5.0 5 4 5
51 52 1 41 2 1.0 18.0 2261 5 5.0 5 2 5
52 53 1 44 2 1.0 3.0 1989 1 2.0 2 1 1
53 54 1 25 1 2.0 1.0 1559 2 4.0 3 1 2
54 55 2 45 2 1.0 17.0 2417 3 5.0 4 3 3
55 56 2 31 2 1.0 6.0 1949 4 4.0 4 3 3
56 57 1 61 2 2.0 36.0 3119 2 NaN 2 1 5
57 58 1 38 2 2.0 NaN 2574 2 3.0 1 1 2
58 59 1 20 1 2.0 1.0 2261 3 4.0 3 2 3
59 60 1 31 1 1.0 10.0 2144 4 4.0 3 1 3
60 61 1 44 1 1.0 19.0 2183 2 2.0 1 1 2
61 62 1 40 2 1.0 0.0 1872 2 3.0 1 2 3
62 63 2 51 2 2.0 10.0 1872 4 3.0 2 2 3
63 64 2 44 1 2.0 1.0 1715 4 4.0 3 2 3
64 65 2 35 2 2.0 17.0 2691 4 4.0 5 2 4
65 66 2 37 2 1.0 16.0 2027 5 5.0 5 4 5
66 67 1 37 2 4.0 8.0 5069 3 4.0 3 2 2
67 68 1 33 2 3.0 7.0 2417 2 4.0 3 1 4
68 69 1 28 2 2.0 1.0 3510 4 5.0 3 1 4
69 70 1 52 2 2.0 22.0 3119 3 4.0 3 2 2
70 71 1 34 2 2.0 1.0 2495 3 5.0 5 3 4
71 72 1 46 2 2.0 23.0 3470 3 5.0 5 3 4
72 73 2 40 2 3.0 2.0 2027 5 3.0 4 3 4
73 74 1 45 2 1.0 20.0 2846 3 5.0 1 1 3
74 75 1 40 1 1.0 1.0 1949 1 5.0 1 1 1
75 76 1 37 1 2.0 15.0 1598 1 5.0 1 1 1
76 77 1 39 1 2.0 22.0 2183 4 5.0 3 1 2
77 78 1 22 1 3.0 0.0 1598 4 4.0 4 3 4
78 79 1 33 1 1.0 2.0 1638 1 3.0 2 1 2
79 80 1 27 1 2.0 7.0 2612 3 4.0 3 3 3
80 81 1 35 2 2.0 16.0 2808 3 4.0 3 3 3
81 82 2 35 2 3.0 15.0 2183 3 4.0 4 3 4

Virheellisen arvon korjaaminen

In [9]:
# Korjaan virheellisen iän indeksinumeron 47 mukaiselta riviltä
df1.loc[47, 'ikä'] = 42
df1
Out[9]:
nro sukup ikä perhe koulutus palveluv palkka johto työtov työymp palkkat työteht
0 1 1 38 1 1.0 22.0 3587 3 3.0 3 3 3
1 2 1 29 2 2.0 10.0 2963 1 5.0 2 1 3
2 3 1 30 1 1.0 7.0 1989 3 4.0 1 1 3
3 4 1 36 2 1.0 14.0 2144 3 3.0 3 3 3
4 5 1 24 1 2.0 4.0 2183 2 3.0 2 1 2
5 6 2 31 2 2.0 14.0 1910 4 4.0 5 2 4
6 7 1 49 1 2.0 16.0 2066 3 5.0 4 2 2
7 8 1 55 1 1.0 0.0 2066 3 5.0 3 1 3
8 9 1 40 2 1.0 23.0 2768 2 4.0 4 2 4
9 10 1 33 1 1.0 16.0 2106 3 2.0 1 1 1
10 11 1 39 2 1.0 22.0 2651 3 5.0 3 1 3
11 12 1 40 2 3.0 21.0 2846 3 5.0 3 1 2
12 13 1 35 2 3.0 15.0 2808 3 5.0 3 1 4
13 14 1 58 2 3.0 21.0 3587 4 5.0 4 1 3
14 15 1 53 2 3.0 12.0 3393 4 4.0 4 4 4
15 16 2 42 2 3.0 23.0 2691 3 3.0 3 3 3
16 17 1 26 1 4.0 2.0 5225 5 5.0 5 4 5
17 18 2 38 2 3.0 17.0 2729 4 3.0 4 2 1
18 19 1 42 1 3.0 20.0 2925 2 3.0 4 1 4
19 20 2 40 2 2.0 13.0 2457 3 3.0 4 3 2
20 21 2 40 2 3.0 20.0 2691 2 4.0 5 3 4
21 22 1 47 2 3.0 17.0 4874 2 4.0 3 2 4
22 23 1 44 2 1.0 27.0 3510 4 4.0 4 4 4
23 24 1 36 1 3.0 7.0 4446 3 4.0 3 4 5
24 25 1 43 2 3.0 1.0 2925 4 4.0 4 4 4
25 26 1 26 1 2.0 3.0 1521 2 4.0 2 1 3
26 27 1 26 1 2.0 2.0 1989 2 4.0 2 2 3
27 28 2 56 1 1.0 15.0 2223 3 4.0 3 2 4
28 29 1 47 2 2.0 23.0 2808 2 4.0 3 1 4
29 30 1 21 1 NaN NaN 1949 4 4.0 3 3 2
30 31 1 21 1 3.0 1.0 2340 4 5.0 3 4 2
31 32 1 45 2 1.0 24.0 2925 4 4.0 4 3 4
32 33 1 59 2 3.0 15.0 6278 4 4.0 5 4 4
33 34 1 37 2 1.0 14.0 2183 1 5.0 1 1 2
34 35 1 28 2 2.0 5.0 1989 3 4.0 3 3 3
35 36 1 31 2 3.0 0.0 1559 2 4.0 3 1 3
36 37 2 56 2 2.0 17.0 2729 5 5.0 5 5 5
37 38 1 50 2 1.0 1.0 2027 5 5.0 4 1 4
38 39 1 30 1 2.0 10.0 2300 3 5.0 3 3 4
39 40 1 32 1 1.0 3.0 2106 1 5.0 4 1 3
40 41 1 33 2 3.0 9.0 2846 3 3.0 4 2 3
41 42 1 29 1 2.0 6.0 2534 3 4.0 3 1 2
42 43 2 40 2 3.0 12.0 2144 4 4.0 4 4 4
43 44 1 30 1 2.0 7.0 2223 2 3.0 4 1 3
44 45 1 55 2 1.0 35.0 2651 4 5.0 4 2 4
45 46 2 51 2 1.0 28.0 1989 3 3.0 2 2 3
46 47 2 22 1 3.0 21.0 1872 3 3.0 4 1 3
47 48 1 42 2 1.0 18.0 2183 4 5.0 4 1 3
48 49 1 27 2 2.0 7.0 2729 4 4.0 3 3 5
49 50 1 29 1 3.0 7.0 2340 3 4.0 3 2 3
50 51 2 39 2 2.0 10.0 2106 4 5.0 5 4 5
51 52 1 41 2 1.0 18.0 2261 5 5.0 5 2 5
52 53 1 44 2 1.0 3.0 1989 1 2.0 2 1 1
53 54 1 25 1 2.0 1.0 1559 2 4.0 3 1 2
54 55 2 45 2 1.0 17.0 2417 3 5.0 4 3 3
55 56 2 31 2 1.0 6.0 1949 4 4.0 4 3 3
56 57 1 61 2 2.0 36.0 3119 2 NaN 2 1 5
57 58 1 38 2 2.0 NaN 2574 2 3.0 1 1 2
58 59 1 20 1 2.0 1.0 2261 3 4.0 3 2 3
59 60 1 31 1 1.0 10.0 2144 4 4.0 3 1 3
60 61 1 44 1 1.0 19.0 2183 2 2.0 1 1 2
61 62 1 40 2 1.0 0.0 1872 2 3.0 1 2 3
62 63 2 51 2 2.0 10.0 1872 4 3.0 2 2 3
63 64 2 44 1 2.0 1.0 1715 4 4.0 3 2 3
64 65 2 35 2 2.0 17.0 2691 4 4.0 5 2 4
65 66 2 37 2 1.0 16.0 2027 5 5.0 5 4 5
66 67 1 37 2 4.0 8.0 5069 3 4.0 3 2 2
67 68 1 33 2 3.0 7.0 2417 2 4.0 3 1 4
68 69 1 28 2 2.0 1.0 3510 4 5.0 3 1 4
69 70 1 52 2 2.0 22.0 3119 3 4.0 3 2 2
70 71 1 34 2 2.0 1.0 2495 3 5.0 5 3 4
71 72 1 46 2 2.0 23.0 3470 3 5.0 5 3 4
72 73 2 40 2 3.0 2.0 2027 5 3.0 4 3 4
73 74 1 45 2 1.0 20.0 2846 3 5.0 1 1 3
74 75 1 40 1 1.0 1.0 1949 1 5.0 1 1 1
75 76 1 37 1 2.0 15.0 1598 1 5.0 1 1 1
76 77 1 39 1 2.0 22.0 2183 4 5.0 3 1 2
77 78 1 22 1 3.0 0.0 1598 4 4.0 4 3 4
78 79 1 33 1 1.0 2.0 1638 1 3.0 2 1 2
79 80 1 27 1 2.0 7.0 2612 3 4.0 3 3 3
80 81 1 35 2 2.0 16.0 2808 3 4.0 3 3 3
81 82 2 35 2 3.0 15.0 2183 3 4.0 4 3 4

Uusien muuttujien laskeminen

In [10]:
# Luon uuden sarakkeen 'sukup_str', jossa sukupuolet tekstinä eli merkkijonoina
# Huomaa sanakirjan (dictionary) käyttö {}
df1['sukup_str'] = df1['sukup'].replace({1:'Mies', 2:'Nainen'})
df1
Out[10]:
nro sukup ikä perhe koulutus palveluv palkka johto työtov työymp palkkat työteht sukup_str
0 1 1 38 1 1.0 22.0 3587 3 3.0 3 3 3 Mies
1 2 1 29 2 2.0 10.0 2963 1 5.0 2 1 3 Mies
2 3 1 30 1 1.0 7.0 1989 3 4.0 1 1 3 Mies
3 4 1 36 2 1.0 14.0 2144 3 3.0 3 3 3 Mies
4 5 1 24 1 2.0 4.0 2183 2 3.0 2 1 2 Mies
5 6 2 31 2 2.0 14.0 1910 4 4.0 5 2 4 Nainen
6 7 1 49 1 2.0 16.0 2066 3 5.0 4 2 2 Mies
7 8 1 55 1 1.0 0.0 2066 3 5.0 3 1 3 Mies
8 9 1 40 2 1.0 23.0 2768 2 4.0 4 2 4 Mies
9 10 1 33 1 1.0 16.0 2106 3 2.0 1 1 1 Mies
10 11 1 39 2 1.0 22.0 2651 3 5.0 3 1 3 Mies
11 12 1 40 2 3.0 21.0 2846 3 5.0 3 1 2 Mies
12 13 1 35 2 3.0 15.0 2808 3 5.0 3 1 4 Mies
13 14 1 58 2 3.0 21.0 3587 4 5.0 4 1 3 Mies
14 15 1 53 2 3.0 12.0 3393 4 4.0 4 4 4 Mies
15 16 2 42 2 3.0 23.0 2691 3 3.0 3 3 3 Nainen
16 17 1 26 1 4.0 2.0 5225 5 5.0 5 4 5 Mies
17 18 2 38 2 3.0 17.0 2729 4 3.0 4 2 1 Nainen
18 19 1 42 1 3.0 20.0 2925 2 3.0 4 1 4 Mies
19 20 2 40 2 2.0 13.0 2457 3 3.0 4 3 2 Nainen
20 21 2 40 2 3.0 20.0 2691 2 4.0 5 3 4 Nainen
21 22 1 47 2 3.0 17.0 4874 2 4.0 3 2 4 Mies
22 23 1 44 2 1.0 27.0 3510 4 4.0 4 4 4 Mies
23 24 1 36 1 3.0 7.0 4446 3 4.0 3 4 5 Mies
24 25 1 43 2 3.0 1.0 2925 4 4.0 4 4 4 Mies
25 26 1 26 1 2.0 3.0 1521 2 4.0 2 1 3 Mies
26 27 1 26 1 2.0 2.0 1989 2 4.0 2 2 3 Mies
27 28 2 56 1 1.0 15.0 2223 3 4.0 3 2 4 Nainen
28 29 1 47 2 2.0 23.0 2808 2 4.0 3 1 4 Mies
29 30 1 21 1 NaN NaN 1949 4 4.0 3 3 2 Mies
30 31 1 21 1 3.0 1.0 2340 4 5.0 3 4 2 Mies
31 32 1 45 2 1.0 24.0 2925 4 4.0 4 3 4 Mies
32 33 1 59 2 3.0 15.0 6278 4 4.0 5 4 4 Mies
33 34 1 37 2 1.0 14.0 2183 1 5.0 1 1 2 Mies
34 35 1 28 2 2.0 5.0 1989 3 4.0 3 3 3 Mies
35 36 1 31 2 3.0 0.0 1559 2 4.0 3 1 3 Mies
36 37 2 56 2 2.0 17.0 2729 5 5.0 5 5 5 Nainen
37 38 1 50 2 1.0 1.0 2027 5 5.0 4 1 4 Mies
38 39 1 30 1 2.0 10.0 2300 3 5.0 3 3 4 Mies
39 40 1 32 1 1.0 3.0 2106 1 5.0 4 1 3 Mies
40 41 1 33 2 3.0 9.0 2846 3 3.0 4 2 3 Mies
41 42 1 29 1 2.0 6.0 2534 3 4.0 3 1 2 Mies
42 43 2 40 2 3.0 12.0 2144 4 4.0 4 4 4 Nainen
43 44 1 30 1 2.0 7.0 2223 2 3.0 4 1 3 Mies
44 45 1 55 2 1.0 35.0 2651 4 5.0 4 2 4 Mies
45 46 2 51 2 1.0 28.0 1989 3 3.0 2 2 3 Nainen
46 47 2 22 1 3.0 21.0 1872 3 3.0 4 1 3 Nainen
47 48 1 42 2 1.0 18.0 2183 4 5.0 4 1 3 Mies
48 49 1 27 2 2.0 7.0 2729 4 4.0 3 3 5 Mies
49 50 1 29 1 3.0 7.0 2340 3 4.0 3 2 3 Mies
50 51 2 39 2 2.0 10.0 2106 4 5.0 5 4 5 Nainen
51 52 1 41 2 1.0 18.0 2261 5 5.0 5 2 5 Mies
52 53 1 44 2 1.0 3.0 1989 1 2.0 2 1 1 Mies
53 54 1 25 1 2.0 1.0 1559 2 4.0 3 1 2 Mies
54 55 2 45 2 1.0 17.0 2417 3 5.0 4 3 3 Nainen
55 56 2 31 2 1.0 6.0 1949 4 4.0 4 3 3 Nainen
56 57 1 61 2 2.0 36.0 3119 2 NaN 2 1 5 Mies
57 58 1 38 2 2.0 NaN 2574 2 3.0 1 1 2 Mies
58 59 1 20 1 2.0 1.0 2261 3 4.0 3 2 3 Mies
59 60 1 31 1 1.0 10.0 2144 4 4.0 3 1 3 Mies
60 61 1 44 1 1.0 19.0 2183 2 2.0 1 1 2 Mies
61 62 1 40 2 1.0 0.0 1872 2 3.0 1 2 3 Mies
62 63 2 51 2 2.0 10.0 1872 4 3.0 2 2 3 Nainen
63 64 2 44 1 2.0 1.0 1715 4 4.0 3 2 3 Nainen
64 65 2 35 2 2.0 17.0 2691 4 4.0 5 2 4 Nainen
65 66 2 37 2 1.0 16.0 2027 5 5.0 5 4 5 Nainen
66 67 1 37 2 4.0 8.0 5069 3 4.0 3 2 2 Mies
67 68 1 33 2 3.0 7.0 2417 2 4.0 3 1 4 Mies
68 69 1 28 2 2.0 1.0 3510 4 5.0 3 1 4 Mies
69 70 1 52 2 2.0 22.0 3119 3 4.0 3 2 2 Mies
70 71 1 34 2 2.0 1.0 2495 3 5.0 5 3 4 Mies
71 72 1 46 2 2.0 23.0 3470 3 5.0 5 3 4 Mies
72 73 2 40 2 3.0 2.0 2027 5 3.0 4 3 4 Nainen
73 74 1 45 2 1.0 20.0 2846 3 5.0 1 1 3 Mies
74 75 1 40 1 1.0 1.0 1949 1 5.0 1 1 1 Mies
75 76 1 37 1 2.0 15.0 1598 1 5.0 1 1 1 Mies
76 77 1 39 1 2.0 22.0 2183 4 5.0 3 1 2 Mies
77 78 1 22 1 3.0 0.0 1598 4 4.0 4 3 4 Mies
78 79 1 33 1 1.0 2.0 1638 1 3.0 2 1 2 Mies
79 80 1 27 1 2.0 7.0 2612 3 4.0 3 3 3 Mies
80 81 1 35 2 2.0 16.0 2808 3 4.0 3 3 3 Mies
81 82 2 35 2 3.0 15.0 2183 3 4.0 4 3 4 Nainen
In [11]:
# Luokkarajat ikäluokille
rajat = [19, 29, 39, 49, 59, 69]

# Luon uuden sarakkeen 'ikäluokka', jossa iät luokiteltuina ikäluokkiin
df1['ikäluokka'] = pd.cut(df1['ikä'], rajat)

df1
# Esimerkiksi (29, 39] tarkoittaa luokkaa, johon 29-vuotias ei kuulu, mutta 39-vuotias kuuluu
Out[11]:
nro sukup ikä perhe koulutus palveluv palkka johto työtov työymp palkkat työteht sukup_str ikäluokka
0 1 1 38 1 1.0 22.0 3587 3 3.0 3 3 3 Mies (29, 39]
1 2 1 29 2 2.0 10.0 2963 1 5.0 2 1 3 Mies (19, 29]
2 3 1 30 1 1.0 7.0 1989 3 4.0 1 1 3 Mies (29, 39]
3 4 1 36 2 1.0 14.0 2144 3 3.0 3 3 3 Mies (29, 39]
4 5 1 24 1 2.0 4.0 2183 2 3.0 2 1 2 Mies (19, 29]
5 6 2 31 2 2.0 14.0 1910 4 4.0 5 2 4 Nainen (29, 39]
6 7 1 49 1 2.0 16.0 2066 3 5.0 4 2 2 Mies (39, 49]
7 8 1 55 1 1.0 0.0 2066 3 5.0 3 1 3 Mies (49, 59]
8 9 1 40 2 1.0 23.0 2768 2 4.0 4 2 4 Mies (39, 49]
9 10 1 33 1 1.0 16.0 2106 3 2.0 1 1 1 Mies (29, 39]
10 11 1 39 2 1.0 22.0 2651 3 5.0 3 1 3 Mies (29, 39]
11 12 1 40 2 3.0 21.0 2846 3 5.0 3 1 2 Mies (39, 49]
12 13 1 35 2 3.0 15.0 2808 3 5.0 3 1 4 Mies (29, 39]
13 14 1 58 2 3.0 21.0 3587 4 5.0 4 1 3 Mies (49, 59]
14 15 1 53 2 3.0 12.0 3393 4 4.0 4 4 4 Mies (49, 59]
15 16 2 42 2 3.0 23.0 2691 3 3.0 3 3 3 Nainen (39, 49]
16 17 1 26 1 4.0 2.0 5225 5 5.0 5 4 5 Mies (19, 29]
17 18 2 38 2 3.0 17.0 2729 4 3.0 4 2 1 Nainen (29, 39]
18 19 1 42 1 3.0 20.0 2925 2 3.0 4 1 4 Mies (39, 49]
19 20 2 40 2 2.0 13.0 2457 3 3.0 4 3 2 Nainen (39, 49]
20 21 2 40 2 3.0 20.0 2691 2 4.0 5 3 4 Nainen (39, 49]
21 22 1 47 2 3.0 17.0 4874 2 4.0 3 2 4 Mies (39, 49]
22 23 1 44 2 1.0 27.0 3510 4 4.0 4 4 4 Mies (39, 49]
23 24 1 36 1 3.0 7.0 4446 3 4.0 3 4 5 Mies (29, 39]
24 25 1 43 2 3.0 1.0 2925 4 4.0 4 4 4 Mies (39, 49]
25 26 1 26 1 2.0 3.0 1521 2 4.0 2 1 3 Mies (19, 29]
26 27 1 26 1 2.0 2.0 1989 2 4.0 2 2 3 Mies (19, 29]
27 28 2 56 1 1.0 15.0 2223 3 4.0 3 2 4 Nainen (49, 59]
28 29 1 47 2 2.0 23.0 2808 2 4.0 3 1 4 Mies (39, 49]
29 30 1 21 1 NaN NaN 1949 4 4.0 3 3 2 Mies (19, 29]
30 31 1 21 1 3.0 1.0 2340 4 5.0 3 4 2 Mies (19, 29]
31 32 1 45 2 1.0 24.0 2925 4 4.0 4 3 4 Mies (39, 49]
32 33 1 59 2 3.0 15.0 6278 4 4.0 5 4 4 Mies (49, 59]
33 34 1 37 2 1.0 14.0 2183 1 5.0 1 1 2 Mies (29, 39]
34 35 1 28 2 2.0 5.0 1989 3 4.0 3 3 3 Mies (19, 29]
35 36 1 31 2 3.0 0.0 1559 2 4.0 3 1 3 Mies (29, 39]
36 37 2 56 2 2.0 17.0 2729 5 5.0 5 5 5 Nainen (49, 59]
37 38 1 50 2 1.0 1.0 2027 5 5.0 4 1 4 Mies (49, 59]
38 39 1 30 1 2.0 10.0 2300 3 5.0 3 3 4 Mies (29, 39]
39 40 1 32 1 1.0 3.0 2106 1 5.0 4 1 3 Mies (29, 39]
40 41 1 33 2 3.0 9.0 2846 3 3.0 4 2 3 Mies (29, 39]
41 42 1 29 1 2.0 6.0 2534 3 4.0 3 1 2 Mies (19, 29]
42 43 2 40 2 3.0 12.0 2144 4 4.0 4 4 4 Nainen (39, 49]
43 44 1 30 1 2.0 7.0 2223 2 3.0 4 1 3 Mies (29, 39]
44 45 1 55 2 1.0 35.0 2651 4 5.0 4 2 4 Mies (49, 59]
45 46 2 51 2 1.0 28.0 1989 3 3.0 2 2 3 Nainen (49, 59]
46 47 2 22 1 3.0 21.0 1872 3 3.0 4 1 3 Nainen (19, 29]
47 48 1 42 2 1.0 18.0 2183 4 5.0 4 1 3 Mies (39, 49]
48 49 1 27 2 2.0 7.0 2729 4 4.0 3 3 5 Mies (19, 29]
49 50 1 29 1 3.0 7.0 2340 3 4.0 3 2 3 Mies (19, 29]
50 51 2 39 2 2.0 10.0 2106 4 5.0 5 4 5 Nainen (29, 39]
51 52 1 41 2 1.0 18.0 2261 5 5.0 5 2 5 Mies (39, 49]
52 53 1 44 2 1.0 3.0 1989 1 2.0 2 1 1 Mies (39, 49]
53 54 1 25 1 2.0 1.0 1559 2 4.0 3 1 2 Mies (19, 29]
54 55 2 45 2 1.0 17.0 2417 3 5.0 4 3 3 Nainen (39, 49]
55 56 2 31 2 1.0 6.0 1949 4 4.0 4 3 3 Nainen (29, 39]
56 57 1 61 2 2.0 36.0 3119 2 NaN 2 1 5 Mies (59, 69]
57 58 1 38 2 2.0 NaN 2574 2 3.0 1 1 2 Mies (29, 39]
58 59 1 20 1 2.0 1.0 2261 3 4.0 3 2 3 Mies (19, 29]
59 60 1 31 1 1.0 10.0 2144 4 4.0 3 1 3 Mies (29, 39]
60 61 1 44 1 1.0 19.0 2183 2 2.0 1 1 2 Mies (39, 49]
61 62 1 40 2 1.0 0.0 1872 2 3.0 1 2 3 Mies (39, 49]
62 63 2 51 2 2.0 10.0 1872 4 3.0 2 2 3 Nainen (49, 59]
63 64 2 44 1 2.0 1.0 1715 4 4.0 3 2 3 Nainen (39, 49]
64 65 2 35 2 2.0 17.0 2691 4 4.0 5 2 4 Nainen (29, 39]
65 66 2 37 2 1.0 16.0 2027 5 5.0 5 4 5 Nainen (29, 39]
66 67 1 37 2 4.0 8.0 5069 3 4.0 3 2 2 Mies (29, 39]
67 68 1 33 2 3.0 7.0 2417 2 4.0 3 1 4 Mies (29, 39]
68 69 1 28 2 2.0 1.0 3510 4 5.0 3 1 4 Mies (19, 29]
69 70 1 52 2 2.0 22.0 3119 3 4.0 3 2 2 Mies (49, 59]
70 71 1 34 2 2.0 1.0 2495 3 5.0 5 3 4 Mies (29, 39]
71 72 1 46 2 2.0 23.0 3470 3 5.0 5 3 4 Mies (39, 49]
72 73 2 40 2 3.0 2.0 2027 5 3.0 4 3 4 Nainen (39, 49]
73 74 1 45 2 1.0 20.0 2846 3 5.0 1 1 3 Mies (39, 49]
74 75 1 40 1 1.0 1.0 1949 1 5.0 1 1 1 Mies (39, 49]
75 76 1 37 1 2.0 15.0 1598 1 5.0 1 1 1 Mies (29, 39]
76 77 1 39 1 2.0 22.0 2183 4 5.0 3 1 2 Mies (29, 39]
77 78 1 22 1 3.0 0.0 1598 4 4.0 4 3 4 Mies (19, 29]
78 79 1 33 1 1.0 2.0 1638 1 3.0 2 1 2 Mies (29, 39]
79 80 1 27 1 2.0 7.0 2612 3 4.0 3 3 3 Mies (19, 29]
80 81 1 35 2 2.0 16.0 2808 3 4.0 3 3 3 Mies (29, 39]
81 82 2 35 2 3.0 15.0 2183 3 4.0 4 3 4 Nainen (29, 39]
In [12]:
# Lasken vastaajan "kokonaistyytyväisyyden" keskiarvona tyytyväisyyksistä eri osa-alueisiin
# axis=1 tarkoittaa keskiarvojen laskemista sivusuunnassa (rivin keskiarvo)
df1['tyytyväisyys'] = df1[['johto','työtov','työymp','palkkat','työteht']].mean(axis=1)

df1[['johto', 'työtov', 'työymp', 'palkkat', 'työteht', 'tyytyväisyys']]
Out[12]:
johto työtov työymp palkkat työteht tyytyväisyys
0 3 3.0 3 3 3 3.0
1 1 5.0 2 1 3 2.4
2 3 4.0 1 1 3 2.4
3 3 3.0 3 3 3 3.0
4 2 3.0 2 1 2 2.0
5 4 4.0 5 2 4 3.8
6 3 5.0 4 2 2 3.2
7 3 5.0 3 1 3 3.0
8 2 4.0 4 2 4 3.2
9 3 2.0 1 1 1 1.6
10 3 5.0 3 1 3 3.0
11 3 5.0 3 1 2 2.8
12 3 5.0 3 1 4 3.2
13 4 5.0 4 1 3 3.4
14 4 4.0 4 4 4 4.0
15 3 3.0 3 3 3 3.0
16 5 5.0 5 4 5 4.8
17 4 3.0 4 2 1 2.8
18 2 3.0 4 1 4 2.8
19 3 3.0 4 3 2 3.0
20 2 4.0 5 3 4 3.6
21 2 4.0 3 2 4 3.0
22 4 4.0 4 4 4 4.0
23 3 4.0 3 4 5 3.8
24 4 4.0 4 4 4 4.0
25 2 4.0 2 1 3 2.4
26 2 4.0 2 2 3 2.6
27 3 4.0 3 2 4 3.2
28 2 4.0 3 1 4 2.8
29 4 4.0 3 3 2 3.2
30 4 5.0 3 4 2 3.6
31 4 4.0 4 3 4 3.8
32 4 4.0 5 4 4 4.2
33 1 5.0 1 1 2 2.0
34 3 4.0 3 3 3 3.2
35 2 4.0 3 1 3 2.6
36 5 5.0 5 5 5 5.0
37 5 5.0 4 1 4 3.8
38 3 5.0 3 3 4 3.6
39 1 5.0 4 1 3 2.8
40 3 3.0 4 2 3 3.0
41 3 4.0 3 1 2 2.6
42 4 4.0 4 4 4 4.0
43 2 3.0 4 1 3 2.6
44 4 5.0 4 2 4 3.8
45 3 3.0 2 2 3 2.6
46 3 3.0 4 1 3 2.8
47 4 5.0 4 1 3 3.4
48 4 4.0 3 3 5 3.8
49 3 4.0 3 2 3 3.0
50 4 5.0 5 4 5 4.6
51 5 5.0 5 2 5 4.4
52 1 2.0 2 1 1 1.4
53 2 4.0 3 1 2 2.4
54 3 5.0 4 3 3 3.6
55 4 4.0 4 3 3 3.6
56 2 NaN 2 1 5 2.5
57 2 3.0 1 1 2 1.8
58 3 4.0 3 2 3 3.0
59 4 4.0 3 1 3 3.0
60 2 2.0 1 1 2 1.6
61 2 3.0 1 2 3 2.2
62 4 3.0 2 2 3 2.8
63 4 4.0 3 2 3 3.2
64 4 4.0 5 2 4 3.8
65 5 5.0 5 4 5 4.8
66 3 4.0 3 2 2 2.8
67 2 4.0 3 1 4 2.8
68 4 5.0 3 1 4 3.4
69 3 4.0 3 2 2 2.8
70 3 5.0 5 3 4 4.0
71 3 5.0 5 3 4 4.0
72 5 3.0 4 3 4 3.8
73 3 5.0 1 1 3 2.6
74 1 5.0 1 1 1 1.8
75 1 5.0 1 1 1 1.8
76 4 5.0 3 1 2 3.0
77 4 4.0 4 3 4 3.8
78 1 3.0 2 1 2 1.8
79 3 4.0 3 3 3 3.2
80 3 4.0 3 3 3 3.2
81 3 4.0 4 3 4 3.6
In [13]:
# Lasken uuden sarakkeen, jossa on käytettyjen etuisuuksien lukumäärä
df['käyttö'] = df[['työterv', 'lomaosa', 'kuntosa', 'hieroja']].count(axis=1)
df[['työterv', 'lomaosa', 'kuntosa', 'hieroja', 'käyttö']]
Out[13]:
työterv lomaosa kuntosa hieroja käyttö
0 NaN NaN NaN NaN 0
1 NaN NaN NaN NaN 0
2 1.0 NaN NaN NaN 1
3 1.0 NaN NaN NaN 1
4 1.0 NaN NaN NaN 1
5 1.0 1.0 NaN NaN 2
6 NaN NaN 1.0 NaN 1
7 1.0 NaN NaN NaN 1
8 NaN 1.0 NaN NaN 1
9 1.0 NaN NaN NaN 1
10 NaN NaN NaN NaN 0
11 NaN 1.0 NaN 1.0 2
12 NaN 1.0 NaN NaN 1
13 NaN NaN NaN NaN 0
14 NaN 1.0 NaN NaN 1
15 1.0 NaN NaN 1.0 2
16 NaN NaN 1.0 NaN 1
17 NaN NaN NaN NaN 0
18 1.0 NaN NaN 1.0 2
19 1.0 NaN NaN 1.0 2
20 NaN NaN NaN NaN 0
21 NaN 1.0 NaN NaN 1
22 NaN 1.0 NaN NaN 1
23 NaN NaN NaN NaN 0
24 NaN 1.0 NaN NaN 1
25 1.0 NaN 1.0 1.0 3
26 1.0 NaN NaN 1.0 2
27 1.0 NaN NaN 1.0 2
28 1.0 NaN NaN NaN 1
29 1.0 NaN NaN NaN 1
30 1.0 NaN 1.0 1.0 3
31 NaN 1.0 NaN NaN 1
32 NaN 1.0 NaN NaN 1
33 1.0 NaN NaN 1.0 2
34 1.0 NaN 1.0 1.0 3
35 1.0 NaN NaN NaN 1
36 NaN NaN NaN 1.0 1
37 1.0 1.0 NaN NaN 2
38 NaN NaN NaN NaN 0
39 1.0 NaN NaN NaN 1
40 1.0 NaN NaN NaN 1
41 1.0 NaN NaN NaN 1
42 NaN 1.0 NaN NaN 1
43 1.0 NaN NaN 1.0 2
44 1.0 NaN NaN 1.0 2
45 1.0 NaN NaN 1.0 2
46 NaN NaN 1.0 NaN 1
47 NaN NaN NaN NaN 0
48 NaN NaN 1.0 NaN 1
49 1.0 NaN NaN NaN 1
50 NaN 1.0 NaN NaN 1
51 NaN 1.0 NaN NaN 1
52 1.0 NaN NaN NaN 1
53 1.0 NaN NaN NaN 1
54 NaN NaN NaN 1.0 1
55 1.0 NaN NaN 1.0 2
56 1.0 NaN NaN 1.0 2
57 1.0 NaN NaN 1.0 2
58 NaN NaN NaN NaN 0
59 1.0 NaN NaN NaN 1
60 1.0 NaN NaN NaN 1
61 1.0 NaN NaN NaN 1
62 1.0 NaN NaN NaN 1
63 1.0 NaN NaN 1.0 2
64 1.0 NaN NaN 1.0 2
65 1.0 1.0 NaN NaN 2
66 1.0 1.0 NaN 1.0 3
67 NaN NaN NaN NaN 0
68 NaN NaN NaN NaN 0
69 1.0 1.0 NaN 1.0 3
70 NaN 1.0 NaN NaN 1
71 NaN 1.0 NaN NaN 1
72 1.0 NaN NaN NaN 1
73 1.0 NaN NaN NaN 1
74 1.0 NaN NaN NaN 1
75 1.0 NaN NaN NaN 1
76 NaN NaN NaN NaN 0
77 NaN 1.0 1.0 NaN 2
78 1.0 NaN NaN NaN 1
79 1.0 NaN 1.0 NaN 2
80 NaN NaN NaN NaN 0
81 1.0 NaN NaN NaN 1
In [14]:
# sukup_str on object-tyyppinen ja ikäluokka on category-tyyppinen!
df1.info()
<class 'pandas.core.frame.DataFrame'>
RangeIndex: 82 entries, 0 to 81
Data columns (total 15 columns):
 #   Column        Non-Null Count  Dtype   
---  ------        --------------  -----   
 0   nro           82 non-null     int64   
 1   sukup         82 non-null     int64   
 2   ikä           82 non-null     int64   
 3   perhe         82 non-null     int64   
 4   koulutus      81 non-null     float64 
 5   palveluv      80 non-null     float64 
 6   palkka        82 non-null     int64   
 7   johto         82 non-null     int64   
 8   työtov        81 non-null     float64 
 9   työymp        82 non-null     int64   
 10  palkkat       82 non-null     int64   
 11  työteht       82 non-null     int64   
 12  sukup_str     82 non-null     object  
 13  ikäluokka     82 non-null     category
 14  tyytyväisyys  82 non-null     float64 
dtypes: category(1), float64(4), int64(9), object(1)
memory usage: 9.4+ KB

Puuttuvia arvoja sisältävien rivien poistaminen

In [15]:
# Poistan rivit, joilta puuttuu koulutus, palveluv tai työtov
df2 = df1.dropna(subset=['koulutus', 'palveluv', 'työtov'])
df2
Out[15]:
nro sukup ikä perhe koulutus palveluv palkka johto työtov työymp palkkat työteht sukup_str ikäluokka tyytyväisyys
0 1 1 38 1 1.0 22.0 3587 3 3.0 3 3 3 Mies (29, 39] 3.0
1 2 1 29 2 2.0 10.0 2963 1 5.0 2 1 3 Mies (19, 29] 2.4
2 3 1 30 1 1.0 7.0 1989 3 4.0 1 1 3 Mies (29, 39] 2.4
3 4 1 36 2 1.0 14.0 2144 3 3.0 3 3 3 Mies (29, 39] 3.0
4 5 1 24 1 2.0 4.0 2183 2 3.0 2 1 2 Mies (19, 29] 2.0
5 6 2 31 2 2.0 14.0 1910 4 4.0 5 2 4 Nainen (29, 39] 3.8
6 7 1 49 1 2.0 16.0 2066 3 5.0 4 2 2 Mies (39, 49] 3.2
7 8 1 55 1 1.0 0.0 2066 3 5.0 3 1 3 Mies (49, 59] 3.0
8 9 1 40 2 1.0 23.0 2768 2 4.0 4 2 4 Mies (39, 49] 3.2
9 10 1 33 1 1.0 16.0 2106 3 2.0 1 1 1 Mies (29, 39] 1.6
10 11 1 39 2 1.0 22.0 2651 3 5.0 3 1 3 Mies (29, 39] 3.0
11 12 1 40 2 3.0 21.0 2846 3 5.0 3 1 2 Mies (39, 49] 2.8
12 13 1 35 2 3.0 15.0 2808 3 5.0 3 1 4 Mies (29, 39] 3.2
13 14 1 58 2 3.0 21.0 3587 4 5.0 4 1 3 Mies (49, 59] 3.4
14 15 1 53 2 3.0 12.0 3393 4 4.0 4 4 4 Mies (49, 59] 4.0
15 16 2 42 2 3.0 23.0 2691 3 3.0 3 3 3 Nainen (39, 49] 3.0
16 17 1 26 1 4.0 2.0 5225 5 5.0 5 4 5 Mies (19, 29] 4.8
17 18 2 38 2 3.0 17.0 2729 4 3.0 4 2 1 Nainen (29, 39] 2.8
18 19 1 42 1 3.0 20.0 2925 2 3.0 4 1 4 Mies (39, 49] 2.8
19 20 2 40 2 2.0 13.0 2457 3 3.0 4 3 2 Nainen (39, 49] 3.0
20 21 2 40 2 3.0 20.0 2691 2 4.0 5 3 4 Nainen (39, 49] 3.6
21 22 1 47 2 3.0 17.0 4874 2 4.0 3 2 4 Mies (39, 49] 3.0
22 23 1 44 2 1.0 27.0 3510 4 4.0 4 4 4 Mies (39, 49] 4.0
23 24 1 36 1 3.0 7.0 4446 3 4.0 3 4 5 Mies (29, 39] 3.8
24 25 1 43 2 3.0 1.0 2925 4 4.0 4 4 4 Mies (39, 49] 4.0
25 26 1 26 1 2.0 3.0 1521 2 4.0 2 1 3 Mies (19, 29] 2.4
26 27 1 26 1 2.0 2.0 1989 2 4.0 2 2 3 Mies (19, 29] 2.6
27 28 2 56 1 1.0 15.0 2223 3 4.0 3 2 4 Nainen (49, 59] 3.2
28 29 1 47 2 2.0 23.0 2808 2 4.0 3 1 4 Mies (39, 49] 2.8
30 31 1 21 1 3.0 1.0 2340 4 5.0 3 4 2 Mies (19, 29] 3.6
31 32 1 45 2 1.0 24.0 2925 4 4.0 4 3 4 Mies (39, 49] 3.8
32 33 1 59 2 3.0 15.0 6278 4 4.0 5 4 4 Mies (49, 59] 4.2
33 34 1 37 2 1.0 14.0 2183 1 5.0 1 1 2 Mies (29, 39] 2.0
34 35 1 28 2 2.0 5.0 1989 3 4.0 3 3 3 Mies (19, 29] 3.2
35 36 1 31 2 3.0 0.0 1559 2 4.0 3 1 3 Mies (29, 39] 2.6
36 37 2 56 2 2.0 17.0 2729 5 5.0 5 5 5 Nainen (49, 59] 5.0
37 38 1 50 2 1.0 1.0 2027 5 5.0 4 1 4 Mies (49, 59] 3.8
38 39 1 30 1 2.0 10.0 2300 3 5.0 3 3 4 Mies (29, 39] 3.6
39 40 1 32 1 1.0 3.0 2106 1 5.0 4 1 3 Mies (29, 39] 2.8
40 41 1 33 2 3.0 9.0 2846 3 3.0 4 2 3 Mies (29, 39] 3.0
41 42 1 29 1 2.0 6.0 2534 3 4.0 3 1 2 Mies (19, 29] 2.6
42 43 2 40 2 3.0 12.0 2144 4 4.0 4 4 4 Nainen (39, 49] 4.0
43 44 1 30 1 2.0 7.0 2223 2 3.0 4 1 3 Mies (29, 39] 2.6
44 45 1 55 2 1.0 35.0 2651 4 5.0 4 2 4 Mies (49, 59] 3.8
45 46 2 51 2 1.0 28.0 1989 3 3.0 2 2 3 Nainen (49, 59] 2.6
46 47 2 22 1 3.0 21.0 1872 3 3.0 4 1 3 Nainen (19, 29] 2.8
47 48 1 42 2 1.0 18.0 2183 4 5.0 4 1 3 Mies (39, 49] 3.4
48 49 1 27 2 2.0 7.0 2729 4 4.0 3 3 5 Mies (19, 29] 3.8
49 50 1 29 1 3.0 7.0 2340 3 4.0 3 2 3 Mies (19, 29] 3.0
50 51 2 39 2 2.0 10.0 2106 4 5.0 5 4 5 Nainen (29, 39] 4.6
51 52 1 41 2 1.0 18.0 2261 5 5.0 5 2 5 Mies (39, 49] 4.4
52 53 1 44 2 1.0 3.0 1989 1 2.0 2 1 1 Mies (39, 49] 1.4
53 54 1 25 1 2.0 1.0 1559 2 4.0 3 1 2 Mies (19, 29] 2.4
54 55 2 45 2 1.0 17.0 2417 3 5.0 4 3 3 Nainen (39, 49] 3.6
55 56 2 31 2 1.0 6.0 1949 4 4.0 4 3 3 Nainen (29, 39] 3.6
58 59 1 20 1 2.0 1.0 2261 3 4.0 3 2 3 Mies (19, 29] 3.0
59 60 1 31 1 1.0 10.0 2144 4 4.0 3 1 3 Mies (29, 39] 3.0
60 61 1 44 1 1.0 19.0 2183 2 2.0 1 1 2 Mies (39, 49] 1.6
61 62 1 40 2 1.0 0.0 1872 2 3.0 1 2 3 Mies (39, 49] 2.2
62 63 2 51 2 2.0 10.0 1872 4 3.0 2 2 3 Nainen (49, 59] 2.8
63 64 2 44 1 2.0 1.0 1715 4 4.0 3 2 3 Nainen (39, 49] 3.2
64 65 2 35 2 2.0 17.0 2691 4 4.0 5 2 4 Nainen (29, 39] 3.8
65 66 2 37 2 1.0 16.0 2027 5 5.0 5 4 5 Nainen (29, 39] 4.8
66 67 1 37 2 4.0 8.0 5069 3 4.0 3 2 2 Mies (29, 39] 2.8
67 68 1 33 2 3.0 7.0 2417 2 4.0 3 1 4 Mies (29, 39] 2.8
68 69 1 28 2 2.0 1.0 3510 4 5.0 3 1 4 Mies (19, 29] 3.4
69 70 1 52 2 2.0 22.0 3119 3 4.0 3 2 2 Mies (49, 59] 2.8
70 71 1 34 2 2.0 1.0 2495 3 5.0 5 3 4 Mies (29, 39] 4.0
71 72 1 46 2 2.0 23.0 3470 3 5.0 5 3 4 Mies (39, 49] 4.0
72 73 2 40 2 3.0 2.0 2027 5 3.0 4 3 4 Nainen (39, 49] 3.8
73 74 1 45 2 1.0 20.0 2846 3 5.0 1 1 3 Mies (39, 49] 2.6
74 75 1 40 1 1.0 1.0 1949 1 5.0 1 1 1 Mies (39, 49] 1.8
75 76 1 37 1 2.0 15.0 1598 1 5.0 1 1 1 Mies (29, 39] 1.8
76 77 1 39 1 2.0 22.0 2183 4 5.0 3 1 2 Mies (29, 39] 3.0
77 78 1 22 1 3.0 0.0 1598 4 4.0 4 3 4 Mies (19, 29] 3.8
78 79 1 33 1 1.0 2.0 1638 1 3.0 2 1 2 Mies (29, 39] 1.8
79 80 1 27 1 2.0 7.0 2612 3 4.0 3 3 3 Mies (19, 29] 3.2
80 81 1 35 2 2.0 16.0 2808 3 4.0 3 3 3 Mies (29, 39] 3.2
81 82 2 35 2 3.0 15.0 2183 3 4.0 4 3 4 Nainen (29, 39] 3.6
In [16]:
df2.shape 
# Nyt datassa on enää 79 riviä (alunperin oli 82 riviä)
Out[16]:
(79, 15)
In [17]:
# Halutessasi voit tallentaa muunnetun dataframen Excel-tiedostoon
df2.to_excel('muunnettu.xlsx')

Luettelo muistiossa käytetyistä funktioista ja ominaisuuksista

  • pd.read_excel() datan lukeminen Excel-tiedostsosta
  • pd.options.display.max_rows = None dataframen kaikkien rivien näyttäminen
  • df.columns sarakeotsikot
  • df.rename() sarakeotsikoiden uudelleen nimeämiseen
  • df.drop() rivien tai sarakkeiden poistamiseen
  • df.set_index() sarakkeen siirtäminen indeksiin
  • df.reset_index() indeksin siirtämiseen tavalliseksi sarakkeeksi (tilalle oletusindeksi)
  • df.loc[] viittaminen dataframen "viipaleeseen"
  • df['sarake'].replace() sarakkeen arvojen korvaaminen uusilla arvoilla
  • pd.cut() arvojen luokittelu
  • df.mean() keskiarvojen laskenta
  • df.count() arvojen lukumäärien laskenta
  • df.info() arvojen lukumäärät ja tietotyypit
  • df.dropna() puuttuvia arvoja sisältävien rivien poistaminen
  • df.shape datan rivien ja sarakkeiden lukumäärät
  • df.to_excel() dataframen tallentaminen Excel-tiedostoon

Lisätietoa

Data-analytiikka Pythonilla: https://tilastoapu.wordpress.com/python/