import operator
idx = np.where(df.values == rowmax[:, (None)])
groups = IT.groupby(zip(*idx), key=operator.itemgetter(0))
[[df.columns[j] for i, j in grp] for k, grp in groups]
Find all indices of maximum in Pandas DataFrame