assuming the data is already in a dataframe df as you describe, try using a list comprehension:
result = pd.DataFrame({ 'name': [df['name'][i] for col in ['A', 'B', 'C'] for i in range(len(df)) if df[col][i] == 1] }, index=['A', 'B', 'C'])