I have a dataframe with results as below. Sample dataframe shown actual one is much larger. I want to get a dictionary (or another structure if it will be faster) with the
You can get the dot product of mask and columns and then use string operations i.e
df.notna().dot(df.columns+',').str.strip(',').str.split(',').to_dict() {1: ['MSFT'], 2: ['GOOG', 'AMZN'], 3: ['AAPL', 'AMZN', 'FB'], 4: ['FB']}