Python 在一列上安装一个热编码器,并应用于多个列

Python 在一列上安装一个热编码器,并应用于多个列,python,pandas,encoding,Python,Pandas,Encoding,我有一个带有两个分类列的数据帧,包含相同的字符串集,我想对其进行一次热编码。 列可以包含的字符串集已确定,并且两列之间的热编码必须一致。两列都包含所有可能的值,甚至多次 在下面的示例中,我将编码器放在一个包含列可以包含的字符串集的列表上。然后转换数据帧的列 问题1:这有意义吗 问题2:如何为两列的一个热编码返回的列指定不同的名称?现在,我可以将这些列放在数据报中,但它们有共同的名称。这是个问题,对吗?如何避免呢 #list of values all_stuff = ['Boat','Bike'

我有一个带有两个分类列的数据帧,包含相同的字符串集,我想对其进行一次热编码。 列可以包含的字符串集已确定,并且两列之间的热编码必须一致。两列都包含所有可能的值,甚至多次

在下面的示例中,我将编码器放在一个包含列可以包含的字符串集的列表上。然后转换数据帧的列

问题1:这有意义吗

问题2:如何为两列的一个热编码返回的列指定不同的名称?现在,我可以将这些列放在数据报中,但它们有共同的名称。这是个问题,对吗?如何避免呢

#list of values
all_stuff = ['Boat','Bike']

#create dataframe
data = {'Stuff': ['Bike', 'Boat'], 'More Stuff': ['Boat', 'Bike']}
index = range(len(data['Stuff']))
columns = ['Stuff','More Stuff']
df = pd.DataFrame(data,  index=index, columns=columns)
df


我认为您可以使用pandas功能:

df = pd.DataFrame({'Stuff': ['Bike', 'Boat'], 'More Stuff': ['Boat', 'Bike']})
pd.get_dummies(df)
输出:

   Stuff_Bike  Stuff_Boat  More Stuff_Bike  More Stuff_Boat
0           1           0                0                1
1           0           1                1                0
   Stuff_Bike  Stuff_Boat  More Stuff_Bike  More Stuff_Boat
0           1           0                0                1
1           0           1                1                0