【问题标题】:What is the best way to create multiple dummy variables in a data frame based on the original column's dtype being an object?基于原始列的 dtype 是对象,在数据框中创建多个虚拟变量的最佳方法是什么?
【发布时间】:2020-05-02 22:05:31
【问题描述】:

我有一个 DataFrame,其中包含许多列,需要根据它们的 dtype 是一个对象来进行虚拟化。对这些列进行热编码/虚拟化的最快和最有效的方法是什么?列表理解?拉姆达?常规函数和变量赋值?我最终将在线性回归模型中使用一些列。数据集已经非常大了,所以如果我可以在不创建过多列的情况下做到这一点,那将是理想的。这是我正在尝试制作的代码的失败示例:

[pd.get_dummies(col for col in df.columns if df.columns.dtype == 'object')]

【问题讨论】:

    标签: python pandas scikit-learn list-comprehension one-hot-encoding


    【解决方案1】:

    您可以使用select_dtypes 发送您想变成假人的子集。你可以concat这个回到原来的DataFrame。

    pd.get_dummies(df.select_dtypes('O'))
    

    否则,您将传递整个 DataFrame 并指定列表中的列。您可以使用列表推导,或者只检查哪个 dtypes 是对象。

    pd.get_dummies(df, columns=df.dtypes.loc[lambda x: x == 'O'].index.tolist())
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2020-05-28
      • 2018-11-11
      • 2015-12-24
      • 1970-01-01
      • 2011-09-18
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多