Pitonas ir kitos gyvatės

Categories PhytonPosted on

Kaip jau esu minėjęs šiek tiek ankščiau, exceliu jau beveik nesinaudoju. Grafikams piešti naudoju PowerBi, jeigu reikia kokio paprasto būdo iš įmonės darbuotojų susirinkti kokią nors informaciją, tai vietoj excelių pakuriu formą su Microsoft Forms ir paskui su Flows perpučiu viską į Sharepointą, jei reikia sudėtingesnės formos – su PowerApps sukuriu appsą… Žodžiu, šiuo metu pilna labai patogių įrankių darbams atlikti todėl buhalterių mylimą excelį jau galima sakyti palaidojau.

Savo žinių arsenalą nutariau praplėsti nauju dalyku – programavimo kalba Python. Prieš pasirinkdamas Python dar svarsčiau ir apie R kalbą. Bet kiek pavyko sužinoti, Python plačiau pritaikomas, daugiau galimybių turintis įrankis, todėl jį ir pasirinkau.

Pirmuosius žingsnius žengiau atsivertęs Edx mokymus. Tačiau man niekada nesisekė mokytis per teoriją, visada lengviau žinias kaupti iš praktikos. Edx’e praėjęs kelias pamokas pradėjau googlinti kaip pasidaryti tam tikrus dalykus ir pradėjau šį tą lipdyti.

Na, ir žiūrėkit viskas gan nesudėtinga. Pirmiausia reikia įsikelti bibliotekas. Duomenų analitikai naudojamą „Pandas“ biblioteką ir dar keletą.

import pandas as pd
import numpy as np
import time
import datetime

Tuomet galima įsikelti duomenis. Galima užsikelti iš tų pačių excel lentelių, csv failų ar pan.:

df_fluidstack = pd.read_excel (r"C:\Users\Justinas\OneDrive\_Pajamos\FluidStack.xlsx")
df_pk = pd.read_excel (r"C:\Users\Justinas\OneDrive\_Pajamos\Paskolų klubas.xlsx",sheet_name="Detalu")

Tada galima atlikti keletą veiksmų lentelei susitvarkyti. Čia pervadinau sutlpelį „uždirbta“ į „Gauta pinigų“ ir įterpiau kelis naujus su statinėmis reikšmėmis:

df_fluidstack['Įmonė'] = "Fluidstack"
df_fluidstack.rename(columns ={"Uždirbta":"Gauta pinigų"},inplace = True)
df_fluidstack['Sritis'] = "Nuoma"
df_fluidstack['Tipas'] = "Kompiuteris"
df_fluidstack['Daiktas'] = "Kompiuteris"
df_fluidstack.drop(['Suma'], axis=1, inplace=True)
df_fluidstack.head()
df_pk.rename(columns ={"Kreditas":"Gauta pinigų"},inplace = True) #Keičia stulpelio pavadinimą
df_pk = df_pk[df_pk['Paaiškinimas'].str.contains("palūkanų")] #Filtruoja reikšmes
df_pk.drop(['Paaiškinimas', 'Debetas'], axis=1, inplace=True) #Ištrina stulpelius
df_pk['Įmonė'] = "Paskolų klubas" #Įterpia stulpelį
df_pk['Sritis'] = "Investavimas"
df_pk['Tipas'] = "P2P"
df_pk['Daiktas'] = "Paskola"
df_pk.head(20)

Analogiškus veiksmus padariau su kita lentele ir jas sujungiau į vieną. Taip pat dar iš datos išsireiškiau mėnesį ir metus:

df_bendras=pd.concat([df_pk, df_fluidstack])
df_bendras['Data'] = pd.to_datetime(df_bendras['Data'])
df_bendras['Mėnesis'] = pd.DatetimeIndex(df_bendras['Data']).month
df_bendras['Metai'] = pd.DatetimeIndex(df_bendras['Data']).year
df_bendras.head(5000)

Ir galiausiai eksportavau į naują excel failą:

# df_bendras.to_excel(r'C:\Users\Justinas\Desktop\Pajamos.xlsx', sheet_name='Duomenys')
outpath = r'C:\Users\Justinas\Desktop'
filename = "Pajamos_"+(time.strftime("%Y-%m-%d")+".xlsx")
df_bendras.to_excel(outpath + "\\" + filename, sheet_name='Duomenys',encoding='utf-8-sig')
print (outpath + "\\" + filename)

Labai patogu, kad nebūtina viso kodo paleisti iš karto, galima leisti tik tam tikras dalis.

Man šis kodas atrodo labai paprasta ir suprantamas, kažkas panašaus kaip makrokomandos. Šitą kodą galima panaudoti kokioms nors didelėms ataskaitoms apdoroti, supaprastinti ir pan. Pvz šiandien jungiausi prie įmonės DWH’o lentos su daugiau 11 000 000 eilučių, padariau keletą manipuliacijų ir išsaugojau kaip csv failą. Tokios ataskaitos generavimas truko apie dvi valandas, o gauta ataskaita svėrė beveik 2 GB.

Kiti du dalykai kuriuos dar noriu išmokti – tai susikurti prognozavimo modelį, kuris man padėtų sėkmingiau investuoti į skolas, ir išmokti web scraping’ą, kad galėčiau iš tinkalapių nusikopijuoti reikiamą info. Žodžiu, labai įdomus ir labai galingas įrankis tas Pitonas.

Ai, dar užmiršau apie antrąją gyvatę pakalbėti 🙂 Su Pitonu kartu eina ir Anakonda. Įsidiegus ją, reikia paleisti Jupiter notebook’us kuriuose ir vyksta visa magija, kitaip – kodo rašymas 🙂

1 comment

Parašykite komentarą

El. pašto adresas nebus skelbiamas. Būtini laukeliai pažymėti *