以列表为元素分割熊猫数据框

数据挖掘 Python 聚类 熊猫 数据框
2022-03-17 07:20:49

我正在使用一个 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将客户划分为不同的组,因为类标签上没有基本事实,而且我有混合数据。但是,我不确定如何有效地分析具有多个值列表的列,例如col2col4我研究了单热编码以将这些列分解为多个虚拟列,例如pd.get_dummies,但我担心创建稀疏矩阵可能会对我的结果产生负面影响。任何人都可以提出更好的方法来处理这个问题吗?

1个回答

您是否担心一列可能有太多的值,并且一个热编码会产生预测能力较低的特征?在这种情况下,您可以为更普遍的类值选择少数特征并保持原样,同时将用于稀有类值的其他特征组合成一个特征。