Python 基于原始列';在数据帧中创建多个虚拟变量的最佳方法是什么;作为对象的数据类型是什么?

Python 基于原始列';在数据帧中创建多个虚拟变量的最佳方法是什么;作为对象的数据类型是什么?,python,pandas,scikit-learn,list-comprehension,one-hot-encoding,Python,Pandas,Scikit Learn,List Comprehension,One Hot Encoding,我有一个数据框架,其中有许多列需要根据其作为对象的数据类型进行模拟。对这些列进行热编码/模拟的最快和最有效的方法是什么?列表理解?兰姆达?正则函数和变量赋值?我最终将在线性回归模型中使用一些列。数据集已经非常大了,所以如果我能做到这一点而不创建过多的列,那将是非常理想的。下面是一个失败的代码示例,我正在尝试使其工作: [pd.get_dummies(col for col in df.columns if df.columns.dtype == 'object')] 您可以使用select\u

我有一个数据框架,其中有许多列需要根据其作为对象的数据类型进行模拟。对这些列进行热编码/模拟的最快和最有效的方法是什么?列表理解?兰姆达?正则函数和变量赋值?我最终将在线性回归模型中使用一些列。数据集已经非常大了,所以如果我能做到这一点而不创建过多的列,那将是非常理想的。下面是一个失败的代码示例,我正在尝试使其工作:

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

您可以使用
select\u dtypes
发送要转换为假人的子集。您可以
concat
将其返回到原始数据帧

pd.get_dummies(df.select_dtypes('O'))
否则,将传递整个数据帧,并在列表中指定列。您可以使用列表理解,或者只检查哪些
dtypes
是对象

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