当前位置: 首页 > 知识库问答 >
问题:

如何改进此代码以使用OneHotEncoder?[重复]

沈宏朗
2023-03-14

你好,我正在使用以下函数将数据集中的所有分类值转换为数字,但我想将其转换为使用OneHotEncoder,如何做到这一点?

def categorical_to_numerical(dataframe):
    for col in dataframe.columns:
        if str(dataframe[col].dtype) == 'category':
            dataframe[col] = dataframe[col].astype("category").cat.codes
    return dataframe

谢谢

共有1个答案

尚鸿才
2023-03-14

如果我理解正确,您希望使用DataFrame。选择数据类型,以选择对象(字符串列。

# example dataframe
df = pd.DataFrame({'col1':[1,2,3],
                   'col2':['a','b','a'],
                   'col3':[4,5,6],
                   'col4':['aaa', 'bbb', 'bbb']})

   col1 col2  col3 col4
0     1    a     4  aaa
1     2    b     5  bbb
2     3    a     6  bbb
for col in df.select_dtypes('object'):
    df[col] = df[col].astype('category').cat.codes

   col1  col2  col3  col4
0     1     0     4     0
1     2     1     5     1
2     3     0     6     1

或者,如果您真的想onehotcode,我们可以使用pd。获取虚拟对象

df = pd.get_dummies(df)

   col1  col3  col2_a  col2_b  col4_aaa  col4_bbb
0     1     4       1       0         1         0
1     2     5       0       1         0         1
2     3     6       1       0         0         1
 类似资料:
  • 问题内容: 通过列出前六个质数:2、3、5、7、11和13,我们可以看到第6个质数是13。 第10 001个素数是多少? 我的解决方案: 但是它没有给出正确的答案。请帮助我升级代码。例如,程序将91定义为质数,但它不是质数。如何改善呢? 问题答案: 您需要针对每个小于质数平方根的质数测试数字,以确保它是质数。 您仅针对2,3和5进行测试。 因为存储所有素数并不总是在空间上可行的,所以一种常见的技术

  • 我一直在试图找到一种方法来使我的代码指数接受E和X的输入。我知道如果我使用扫描仪util,它将使这成为可能。但是到目前为止,我还没有找到这样做的方法。如果你能帮忙,那就太好了,谢谢! }

  • 问题内容: 以下是我遇到的代码: 从iOS 9开始不推荐使用此方法,并告诉我改用dataTaskWithRequest。有人可以帮我用dataTask更改sendAsync,我不知道该怎么做。 问题答案: 像下面这样使用, 对于Objective-C 对于Swift, 对于异步查询,来自Apple 文档 与大多数网络API一样,NSURLSession API是高度异步的。根据您调用的方法,它以两

  • 我这么叫它: 我有什么方法可以重构我的方法,以便我可以像这样调用它(只有1λ):

  • 我已将ascii代码转换为可打印文本 现在我想改回原始文本(“一些文本\xbb \u4500”),因为我正在检查“\xbb”(“一些文本\xbb \u4500”)它返回错误值

  • 我有以下课程: SonarQube用变量标记所有三行上的错误: 移动此变量以符合Java规范约定。 如何使代码与SonarQube兼容? 我正在为Eclipse v2.6.0使用Sonarint。