【发布时间】:2015-11-30 16:13:01
【问题描述】:
我在 pandas 数据框中有一列看起来像这样(更长,但这里是前几行):
>df_fill['col1']
0 5987.8866699999998672865
1 52215.5966699999989941716
2 201.8966700000000003001
3 3.8199999999999998401
我想将整列四舍五入到小数点后 5 位。我可以将其四舍五入为整数,但不能四舍五入到小数点后的任何位数。列的类型是浮点数。
> np.around(df_fill['col1'], 0)
0 5988
1 52216
2 202
3 4
> np.around(df_fill['col1'], 5)
0 5987.8866699999998672865
1 52215.5966699999989941716
2 201.8966700000000003001
3 3.8199999999999998401
> (df_fill['col1']).round()
0 5988
1 52216
2 202
3 4
>(df_fill['col1']).round(5)
0 5987.8866699999998672865
1 52215.5966699999989941716
2 201.8966700000000003001
3 3.8199999999999998401
> (df_fill['col1']).round(decimals=5)
0 5987.8866699999998672865
1 52215.5966699999989941716
2 201.8966700000000003001
3 3.8199999999999998401
> str((df_fill['col1']).round(decimals=5))
'0 5987.8866699999998672865\n1 52215.5966699999989941716\n2 201.8966700000000003001\n3 3.8199999999999998401\
我在这里缺少什么?
【问题讨论】:
-
df_fill['col1'].round(5)不能正常工作吗? -
什么是
df_fill['col1'].dtype? -
@EdChum 没有用,尝试我仍然得到小数点后 19 位的结果。
-
unutbu 有一点,这里的dtype是什么?
-
@unutbu dtype('float64')