在for循环中更改多个panda数据帧的数据类型



我有几个数据帧,需要将数据类型转换为整数。我试着使用for循环来让我的代码更整洁,但在运行并检查数据类型后,它们没有改变。有人知道为什么会这样吗?我认为这与复制有关。下面是类似代码的示例:

for df in [df1, df2, df3]:
df = df.astype(int)

这里的问题是,您没有更改初始对象,只更改变量df。

要更改初始数据帧,您可以执行以下操作:

df_list = [df1, df2, df3]
for i in range(len(df_list)):
df_list[i] = df_list[i].astype(int)

我发现了一个更好的使用函数进行编码的原因。它并不像我最初希望的for循环那样优雅,但它可以省去我写一长串要更改几次的列名:

def to_int(df, cols):
df[cols] = df[cols].astype(int)
return df
df = to_int(df, ['col1', 'col2'])

允许我仅更改所需列的数据类型。

最新更新