column_dict = {}
for col in [{col: {True: col}} for col in df.columns]:
    column_dict.update(col)
df = (df > 0).replace(to_replace=column_dict)
[tuple(y for y in x if y != False) for x in df.to_records()]
Getting (index, column) pairs for True elements of a boolean DataFrame in Pandas