Example DataFrame:
df = pd.DataFrame({'column_1':['a','a','a','a','a','a','b','b','b','b','b','b','b','b','b','c','c','d','d']
,'column_2':[1,1,1,2,2,2,1,1,1,2,2,2,3,3,3,1,2,2,3]
})
And I want to count each pair of columns by condition with numeration from 1 to N. I think, I must use apply function, but don't know how to write its realistion.
Using cycles with .loc is very slow (filtering cause)
for column_1 in df.column_1.unique():
for column_2 in df.column_2.unique():
condition = (df.column_1 == column_1)&(df.column_2 == column_2)
max_range = sum(condition)
df.loc[condition, 'result'] = range(1, max_range + 1)
df.result = df.result.astype(int)
Result: