У меня есть следующая таблица
df = pandas.DataFrame({'foo': ['b', 'a,b', 'a,c', 'a,b,c'],
'bar': ['X,Y', 'Z', 'Z,X', 'X,Y']})
Я хочу иметь таблицу со столбцами «a», «b», «c», «X», «Y», «Z» с записями False / True.
Это НЕ однократный энкодер, так как возможно несколько значений. Как мне этого добиться?

Я думаю, нужно, чтобы только 2 столбца удваивали str.get_dummies с join и последнее приведение для логического:
df = df['foo'].str.get_dummies(',').join(df['bar'].str.get_dummies(',')).astype(bool)
print (df)
a b c X Y Z
0 False True False True True False
1 True True False False False True
2 True False True True False True
3 True True True True True False
Если несколько столбцов, более общим решением будет list comprehension с concat:
df = pd.concat([df[x].str.get_dummies(',') for x in df.columns], axis=1).astype(bool)