vrijdag 20 december 2019

Hoe kan je makkelijk een dataframe groeperen en per groep bewerkingen uitvoeren

Hoe kan je makkelijk een dataframe groeperen en per groep bewerkingen uitvoeren



def func1(name,group):
    print(group)

df1.groupby(['BSN']).apply(lambda x: func1(x.name,x))

def func2(name,group):
    print(name)

df1.groupby(['BSN','CODE_VOORZIENING']).apply(lambda x: func2(x.name,x))


voorbeeld

def checkOverlapPerGroepering(tgroep,dfx):
    global myresult
    # Maak een set
    dfx['myrange']=dfx.apply(lambda x: set(x['myrange']),axis=1)
 #   ==> ga bepalen er een join is tussen de myrange records van de bsn
    geenoverlap=True
    lstbsnoverlap=[]  
    for i in range(len(dfx)-1):
        geenoverlap=dfx['myrange'].iloc[i].isdisjoint(dfx['myrange'].iloc[i+1]) &  geenoverlap
    trecord={'groep':str(tgroep),'geenoverlap': geenoverlap}
    myresult=myresult.append(trecord,ignore_index=True)
   

>>>>> main 2>>>>>

myresult = pd.DataFrame(columns =['groep', 'geenoverlap'])
df1.groupby(['BSN']).apply(lambda x: checkOverlapPerGroepering(x.name,x))
df1.groupby(['BSN','CODE_VOORZIENING']).apply(lambda x: checkOverlapPerGroepering(x.name,x))

Geen opmerkingen:

Een reactie posten

Datums bepalen adhv begin en einddatum in Dataframe

Voorbeeld op losse velden  ####################################################################### # import necessary packages from datetime...