gpt4 book ai didi

python - Pandas astype int 不从值中删除小数点

转载 作者:行者123 更新时间:2023-12-04 00:54:08 28 4
gpt4 key购买 nike

我尝试使用 round 然后 astype 将浮点 DataFrame 的某些列中的值转换为整数。但是,这些值仍然包含小数位。我的代码有什么问题?

nums = np.arange(1, 11)
arr = np.array(nums)
arr = arr.reshape((2, 5))
df = pd.DataFrame(arr)
df += 0.1
df

原始df:

    0   1   2   3   4
0 1.1 2.1 3.1 4.1 5.1
1 6.1 7.1 8.1 9.1 10.1

然后四舍五入到 int 代码:

df.iloc[:, 2:] = df.iloc[:, 2:].round()
df.iloc[:, 2:] = df.iloc[:, 2:].astype(int)
df

输出:

    0   1   2   3   4
0 1.1 2.1 3.0 4.0 5.0
1 6.1 7.1 8.0 9.0 10.0

预期输出:

    0   1   2   3   4
0 1.1 2.1 3 4 5
1 6.1 7.1 8 9 10

最佳答案

问题在于 .iloc 它分配了值并且没有更改列类型

l = df.columns[2:]
df[l] = df[l].astype(int)
df
0 1 2 3 4
0 1.1 2.1 3 4 5
1 6.1 7.1 8 9 10

关于python - Pandas astype int 不从值中删除小数点,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64048662/

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