如果我们有这样的列:
Name
0 Alice
1 Bob
2 Dave
然后,经过数字编码后,变为:
Name
0 0
1 1
2 2
但是,如果我们有这样的列怎么办:
Names
0 Alice, Bob
1 Alice, Bob, Dave
2 Dave
编码它的一种方法是这样的:
Alice Bob Dave
0 1 1 0
1 1 1 1
2 0 0 1
但是,这会产生很多额外的列。有没有办法以一种不会导致大量额外列的方式对这样的列进行编码,就像使用数字编码而不是单热编码可以防止太多列出现在我的第一个列中显示?
如果您使用的是 Python,这里有一些代码可以重现我的 DataFrame:
import pandas as pd
df = pd.DataFrame({'Names': ['Alice, Bob', 'Alice, Bob, Dave', 'Dave']})
编辑:这样做的最终目的是通过一个基于树的分类器。