gpt4 book ai didi

python - one-hot编码单样本 Pandas

转载 作者:太空宇宙 更新时间:2023-11-04 00:42:27 24 4
gpt4 key购买 nike

问题陈述:我想对这个单一样本进行单热编码:

In [2]: single_sample = pd.DataFrame({"Color":['Green']})

Color
0 'Green'

使用与此数据帧相同的单热编码:

In [3]: df = pd.DataFrame({"Color":['Red', 'Blue', 'Green', 'Orange']})

Color
0 'Red'
1 'Blue'
2 'Green'
3 'Orange'

应用one-hot编码后,大数据帧看起来像;

In [4]: pd.get_dummies(df)

Color_Blue Color_Green Color_Orange Color_Red
0 0 0 0 1
1 1 0 0 0
2 0 1 0 0
3 0 0 1 0

我希望单个样本是;

      Color_Blue  Color_Green  Color_Orange  Color_Red
0 0 1 0 0

我想到实现这一点的唯一方法是将单个样本连接到数据帧,然后执行单热编码操作,或者编写我自己的单热编码器,我可以将其应用于给定的列。

是否有更好的方法以某种方式保存 .get_dummies() 函数应用的操作?

最佳答案

您可以使用 reindex df1 的列数:

df1 = pd.get_dummies(df)
print (df1)
Color_Blue Color_Green Color_Orange Color_Red
0 0 0 0 1
1 1 0 0 0
2 0 1 0 0
3 0 0 1 0

print (pd.get_dummies(single_sample).reindex(columns=df1.columns, fill_value=0))
Color_Blue Color_Green Color_Orange Color_Red
0 0 1 0 0

另一个可能的解决方案是通过list comprehension 创建新列:

cols = ('Color_' + df.Color.sort_values()).unique().tolist()
print (cols)
['Color_Blue', 'Color_Green', 'Color_Orange', 'Color_Red']

print (pd.get_dummies(single_sample).reindex(columns=cols, fill_value=0))
Color_Blue Color_Green Color_Orange Color_Red
0 0 1 0 0

关于python - one-hot编码单样本 Pandas ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41298239/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com