gpt4 book ai didi

python - 对数据框中的值进行四舍五入并丢失小数点

转载 作者:行者123 更新时间:2023-12-01 09:16:55 25 4
gpt4 key购买 nike

我正在尝试将 pandas 数据帧的值四舍五入到最接近的整数,以便我可以在可能将其读取/保存到 csv 之前以这种方式保存数据帧。我不知道为什么我无法匹配 pandas 网站上描述的 .round() 方法的结果。这是我的代码:

import pandas as pd
import numpy as np

x1 = np.random.randn(10)
df1 = pd.DataFrame({'x':x1})

df1

x
0 0.540351
1 0.205924
2 0.619970
3 0.636680
4 -1.415081
5 0.162028
6 -0.080224
7 -0.022692
8 -0.367687
9 -0.365140

df1.round(0)

x
0 1.0
1 0.0
2 1.0
3 1.0
4 -1.0
5 0.0
6 0.0
7 0.0
8 0.0
9 0.0

我想获得“1”和“0” - 这是我根据在线文档所期望的 - https://pandas.pydata.org/pandas-docs/stable/generated/pandas.DataFrame.round.html 。显示 .round(decimals) 的第三个示例为 B 列提供“1”和“0”,而不是 1.0 和 0.0。

最佳答案

pd.Series.round参数 0 的作用是四舍五入到小数点后 0 位。不 promise 转换为整数数据类型。为了确保发生这种情况,您应该在单独的步骤中应用转换:

import pandas as pd
import numpy as np

np.random.seed(0)

x1 = np.random.randn(10)
df1 = pd.DataFrame({'x':x1})

print(df1['x'].round(0).astype(int))

0 2
1 0
2 1
3 2
4 2
5 -1
6 1
7 0
8 0
9 0
Name: x, dtype: int32

关于python - 对数据框中的值进行四舍五入并丢失小数点,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51164488/

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