Lasken frekvenssit ja tallennan tulokset Excel-tiedostoon

In [1]:
import pandas as pd

df = pd.read_excel('http://taanila.fi/data1.xlsx')
In [2]:
#alustan ExcelWriterin kirjoittamaan uuteen tiedostoon frekvenssit.xlsx
writer = pd.ExcelWriter('frekvenssit.xlsx', engine='xlsxwriter')

#pidän kirjaa rivinumerosta rivi-muuttujan avulla
rivi = 0

#käyn for-silmukalla läpi kaikki df:n muuttujat (sarakkeet)
for var in df:
    #tallennan crosstab-toiminnon tuottamat frekvenssit df1-nimiseen dataframeen
    df1 = pd.crosstab(df[var], 'lkm')
    #lasken df1-dataframeen prosentit
    df1['prosenttia'] = df1/df1.sum()
    #lasken df1:n viimeiselle riville summat
    df1.loc['Yhteensä'] = df1.sum()
    #kirjoitan tulostaulukon (df1) Frekvenssit-taulukkovälilehdelle
    df1.to_excel(writer, sheet_name = 'Frekvenssit', startrow=rivi)
    #kasvatan rivinumeroa, shape[0] antaa df1:n rivimäärän (shape[1] antaisi sarakkeiden määrän)
    rivi = rivi + df1.shape[0] + 2
    
#lisään C-sarakkeeseen prosenttimuotoilun, None-tilalla voisi olla sarakkeen leveyttä kuvaava luku
format = writer.book.add_format({'num_format': '0.0%'})
writer.sheets['Frekvenssit'].set_column('C:C',None, format)

#tallennan Excel-tiedoston
writer.save()

Tämän jälkeen voin avata frekvenssit.xlsx -tiedoston Exceliin ja katsoa mitä kaikkea sain aikaan. Kuinkahan paljon kauemmin saman aikaansaaminen olisi kestänyt Excelillä?