testDf['nunique'] = 1
for col1, col2 in zip(days, days[1:]):
    testDf['nunique'] += ~(testDf[[col2]].values == testDf.ix[:, 'day1':
        col1].values).any(axis=1)
efficient count distinct across columns of DataFrame, grouped by rows