def binarize(df,cols,kpi_axis,time_axis,order): cols = cols.drop([kpi_axis,time_axis]) features = [] for k in range(0,order): features.append(cols) fs = [] for f in itertools.product(*features): # list(set(f)).sort() f = np.unique(f) fs.append(tuple(f)) fs = tuple(set(i for i in fs)) print(fs) for f in fs: print(len(f)) states =[] for d in f: states.append(tuple(set(df[d].astype('category')))) for state in itertools.product(*states): z = 1 name = str() for d in range(0,len(f)): z = z*df[f[d]]==state[d] name += f[d] + " == " +str(state[d]) if d<len(f)-1: name += " AND " df[name] = z for d in cols: df = df.drop([d],axis = 1) return df
Preview:
downloadDownload PNG
downloadDownload JPEG
downloadDownload SVG
Tip: You can change the style, width & colours of the snippet with the inspect tool before clicking Download!
Click to optimize width for Twitter