首页 > 解决方案 > 如何将整列四舍五入到下一个 10?

问题描述

我真的很难将我的数据组织到 Jupyter Notebook 中的“箱”中。我需要将 Length 列向上舍入到下一个 10,但我似乎只能将其四舍五入到最接近的整数。我真的很感激一些指导。提前致谢。:)

IN[58]  df2['Length']

OUT[58] 0    541.56
        1    541.73
        2    482.22
        3    345.45
...

需要看起来像这样:

IN[58]  df2['Length']

OUT[58] 0    550
        1    550
        2    490
        3    350
...

标签: pandascsv

解决方案


样本

print (df2)
   Length
0  541.56
1  541.73
2  482.22
3  500.00 <- whole number for better sample 

您可以使用整数除法,乘以10并转换为整数,如果模不是,则加 10 0

s = (df2['Length'] // 10 * 10).astype(int) + (df2['Length'] % 10 > 0).astype(int) * 10
print (s)
0    550
1    550
2    490
3    500
Name: Length, dtype: int32

另一个使用事实//四舍五入

s = -(-df2['Length'] // 10 * 10).astype(int)
print (s)
0    550
1    550
2    490
3    500
Name: Length, dtype: int32

或者可以使用除法np.ceil

s = (np.ceil(df2['Length'] / 10) * 10).astype(int)
print (s)
0    550
1    550
2    490
3    500
Name: Length, dtype: int32

推荐阅读