Pandas-将分类数据拆分为列

Pandas-将分类数据拆分为列,pandas,categorical-data,Pandas,Categorical Data,我有下表 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”的表,其中包含假/真条目 这不是一个热编码器,因为可能有多个值。如何实现这一点?我认为,如果布尔值只有2列的双精度和最后一次转换,则需要: df = df['foo'].str.get

我有下表

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”的表,其中包含假/真条目


这不是一个热编码器,因为可能有多个值。如何实现这一点?

我认为,如果布尔值只有2列的双精度和最后一次转换,则需要:

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
如果有多列,更通用的解决方案是
列表理解
,包括:

df = pd.concat([df[x].str.get_dummies(',') for x in df.columns], axis=1).astype(bool)