def VergelijkTabellen(dfBase,dfCurrent) :
dfC=pd.merge(dfBase,dfCurrent, on='table_name', how='outer',suffixes=('_old', '_new'))
# Analyses
logger.info('------------------------------' + str(datetime.now()) + '------------------------------' )
logger.info('tabellen alleen in old' )
t=dfC[(dfC['aantal_old'].isna() & dfC['aantal_new'].notna())]
logger.info(t.to_string(columns=['table_name'],index=False))
logger.info('------------------------------')
logger.info('tabellen alleen in new' )
t=dfC[(dfC['aantal_old'].notna() & dfC['aantal_new'].isna())]
logger.info(t.to_string(columns=['table_name'],index=False))
t=dfC[(dfC['aantal_old'].notna() & dfC['aantal_new'].notna())]
dfC['Verschil']=dfC.apply(lambda x : x['aantal_new'] - x['aantal_old'], axis=1)
lstValues=[(dfC['aantal_new'] - dfC['aantal_old']) /(dfC['aantal_old'])]
lstConditions = [dfC['aantal_old'].notna() & dfC['aantal_new'].notna() & dfC['aantal_old']!=0 ]
dfC['Stijging']= np.select(lstConditions,lstValues,'nvt')
dfC['Stijging'] = dfC['Stijging'].map(lambda x : '{percent:.2%}'.format(percent=float(x)) if x!= 'nvt' else x)
logger.info(dfC.to_string(index=False))
return dfC
Percentages printen van strings.
dfC['Stijging'] = dfC['Stijging'].map(lambda x : '{percent:.2%}'.format(percent=float(x)))
Percentage berekenen
lstValues=[(dfC['aantal_new'] - dfC['aantal_old']) /(dfC['aantal_old'])]
lstConditions = [dfC['aantal_old'].notna() & dfC['aantal_new'].notna() & dfC['aantal_old']!=0 ]
dfC['Stijging']= np.select(lstConditions,lstValues,'nvt')
dfC['Stijging'] = dfC['Stijging'].map(lambda x : '{percent:.2%}'.format(percent=float(x)) if x!= 'nvt' else x)
Geen opmerkingen:
Een reactie posten