我正在使用一个 pandas DataFrame,其中包含有关客户人口统计和偏好的数字和分类数据的组合。每行包含有关单个客户的信息。df有 5000 行和 30 列。
df = pd.DataFrame({'col1':list('mno'),
'col2':[['a','b'],['d'],['a','b','c','d']],
'col3':[1,2,3],
'col4':[[1,3,4],[5,6,7],[8,3]]})
df
col1 col2 col3 col4
0 m ['a', 'b'] 1 [1, 3, 4]
1 n ['d'] 2 [5, 6, 7]
2 o ['a', 'b', 'c', 'd'] 3 [8, 3]
我希望使用k-prototypes将客户划分为不同的组,因为类标签上没有基本事实,而且我有混合数据。但是,我不确定如何有效地分析具有多个值列表的列,例如col2和col4。我研究了单热编码以将这些列分解为多个虚拟列,例如pd.get_dummies,但我担心创建稀疏矩阵可能会对我的结果产生负面影响。任何人都可以提出更好的方法来处理这个问题吗?