Вы можете использовать pd.get_dummies
:
u = pd.DataFrame.from_dict(my_dict, orient='index')
pd.get_dummies(u, prefix='', prefix_sep='').max(level=0, axis=1).astype(bool)
a b c
row1 True True False
row2 True False False
row3 False True True
Вы также можете использовать stack
и str.get_dummies
, что является кратким, но это будет немного медленнее.
u.stack().str.get_dummies().max(level=0).astype(bool)
a b c
row1 True True False
row2 True False False
row3 False True True