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