gpt4 book ai didi

python - 使用for循环转换多列的数据类型

转载 作者:行者123 更新时间:2023-12-05 01:37:41 26 4
gpt4 key购买 nike

我有一个 21840x39 数据框。我的一些列是数值化的,我想确保它们都在相同的数据类型中(我想成为一个float)。

不是命名所有列并转换它们:

df[['A', 'B', 'C', '...]] = df[['A', 'B', 'C', '...]].astype(float)

我可以做一个 for 循环 来让我说“从第 18 列转换为 float 到第 35 列”吗

我知道如何做一列:df['A'] = df['A'].astype(float)

但是我怎样才能做多列呢?我尝试在循环中进行列表切片,但无法正确完成。

最佳答案

第一个想法是转换选定的列,python 从 0 开始计数,因此对于 18 到 36 列,使用:

df.iloc[:, 17:35] = df.iloc[:, 17:35].astype(float)

如果不工作(因为可能的错误)使用另一个解决方案:

df = df.astype(dict.fromkeys(df.columns[17:35], float))

示例 - 将第 8 列转换为第 15 列:

np.random.seed(2020)
df = pd.DataFrame(np.random.randint(10, size=(3, 18)),
columns=list('abcdefghijklmnopqr')).astype(str)
print (df)
a b c d e f g h i j k l m n o p q r
0 0 8 3 6 3 3 7 8 0 0 8 9 3 7 2 3 6 5
1 0 4 8 6 4 1 1 5 9 5 6 6 6 5 4 6 4 2
2 3 4 7 1 4 9 3 2 0 9 1 2 7 1 0 2 8 8

df = df.astype(dict.fromkeys(df.columns[7:15], float))
print (df)
a b c d e f g h i j k l m n o p q r
0 0 8 3 6 3 3 7 8.0 0.0 0.0 8.0 9.0 3.0 7.0 2.0 3 6 5
1 0 4 8 6 4 1 1 5.0 9.0 5.0 6.0 6.0 6.0 5.0 4.0 6 4 2
2 3 4 7 1 4 9 3 2.0 0.0 9.0 1.0 2.0 7.0 1.0 0.0 2 8 8

关于python - 使用for循环转换多列的数据类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60682243/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com