#!/usr/bin/env python # coding: utf-8 # In[1]: from datetime import datetime print(f'Päivitetty {datetime.now().date()} / Aki Taanila') # # Datojen yhdistäminen vierekkäin tai allekkain # # Vierekkäin yhdistettävissä datoissa täytyy molemmissa olla indeksi, jonka arvojen perusteella rivit asettuvat kohdakkain. # # Allekkain yhdistettävissä datoissa saman nimiset muuttujat asettuvat kohdakkain. # In[2]: import pandas as pd # ## Yhdistäminen vierekkäin # In[3]: # Avaan yhdistettävät datat df1 = pd.read_excel('https://taanila.fi/data1.xlsx') df2 = pd.read_excel('https://taanila.fi/data1_s.xlsx') # Data, johon yhdistetään sairaspoissaolot df1 # In[4]: # Sairaspoissaolot # nro-sarakkeen tiedot vastaavat toisiaan: esim. nro 6 vastaa henkilöä, # jonka nro on 6 myös df1:ssä df2 # In[5]: # Siirrän nro-muuttujan arvot indeksiin df1 = df1.set_index('nro') df2 = df2.set_index('nro') # In[6]: # Varmistan, että nro:n siirto indeksiin onnnistui df1 # In[7]: # Varmistan, että nro:n siirto indeksiin onnnistui df2 # In[8]: # Yhdistän df1 ja df2 vierekkäin (axis=1 merkitsee vierekkäin yhdistämistä) df3 = pd.concat([df1, df2], axis=1) # In[9]: # Varmistan yhdistämisen onnistumisen df3.head(10) # ## Yhdistäminen allekkain # In[10]: # data1_add.xlsx sisältää tietoja, jotka haluan lisätä df3:n perään df4 = pd.read_excel('http://taanila.fi/data1_add.xlsx') # Siirrän nro-muuttujan arvot indeksiin df4 = df4.set_index('nro') df4 # In[11]: # Yhdistän df3 ja df4 allekkain df5 = pd.concat([df3, df4]) df5 # ## Luettelo muistiossa käytetyistä funktioista ja ominaisuuksista # # * **pd.read_excel()** datan lukeminen Excel-tiedostosta # * **df.set_index()** sarakkeen siirtäminen indeksiin # * **pd.concat()** datojen yhdistäminen # ## Lisätietoa # # - https://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.concat.html # # Data-analytiikka Pythonilla https://tilastoapu.wordpress.com/python/