在Python/Pandas中将dtype“object”的所有列转换为“float”

Kri*_*ler 4 python type-conversion pandas

我想将数据框中的所有“对象”类型列转换为另一种数据类型(浮点数),而不需要对列名称进行硬编码。我能够从其他似乎有效的答案中拼凑出一些代码,但我觉得必须有一种更简单的方法来做到这一点。

# Creating isolating columns of object data type
object_cols = df.loc[:, df.dtypes == 'O']

# Extracting column names with list comprehension
object_type_columns = [col for col in object_cols.columns]

# Converting column types of .astype in a for loop
for col in object_type_columns:
  df[col] = df[col].astype(float)
Run Code Online (Sandbox Code Playgroud)

如果我遗漏了任何信息,请告诉我(我是新手)。谢谢!

Hen*_*Yik 10

您可以使用select_dtypes查找列名称:

s = df.select_dtypes(include='object').columns
df[s] = df[s].astype("float")
Run Code Online (Sandbox Code Playgroud)