根据原始列的 dtype 作为对象在数据框中创建多个虚拟变量的最佳方法是什么?



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

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

您可以使用select_dtypes发送要变成假人的子集。您可以将其concat回原始数据帧。

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

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

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

最新更新