python - 使用指定的十进制位数格式化 pandas 数据框的数字列

标签 python pandas formatting

我必须将数据框中的一列数字格式化为 pandas 四舍五入为两位但保留三位十进制数字,其中最后一位为 0 并且该列不必是字符串。导出到 Excel 后,必须表示该列的数字。

d = {'col1': [0.567, 2.54765476], 'col2': [3, 4]}
df = pd.DataFrame(data=d)

         col1  col2
0       0.567     3
1  2.54765476     4

预期:

    col1  col2
0  0.560     3
1  2.540     4

重要的是类型保持数字

最佳答案

您可能需要floor div 然后format

df.col1=(np.floor(df.col1*100)/100).map('{:,.3f}'.format)
df
Out[355]: 
    col1  col2
0  0.560     3
1  2.540     4

关于python - 使用指定的十进制位数格式化 pandas 数据框的数字列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54770993/

相关文章:

python - 如何在 Python 3.6.4 (Windows) 上安装 Pillow

python - 如何使用 Pandas 将两个时间列加在一起

python - 从 Pandas 系列中删除最小值

javascript - 如何向 JSON 文件添加换行符以使其更具可读性?

cakephp - 富文本编辑器可以去除 Microsoft Word 格式吗?

python - 使用 ffmpeg-python 库捕获网络摄像头

python - 如何将以天为单位的 timedelta 转换为字符串?

python - pandas 是否有函数可以转换以 CST 作为时区的时间戳?

MySQL 日期时区输入

python - Gmail API : ModuleNotFoundError: No module named 'google'