当前位置: 首页 > ds >正文

【Pandas】pandas DataFrame round

Pandas2.2 DataFrame

Computations descriptive stats

方法描述
DataFrame.abs()用于返回 DataFrame 中每个元素的绝对值
DataFrame.all([axis, bool_only, skipna])用于判断 DataFrame 中是否所有元素在指定轴上都为 True
DataFrame.any(*[, axis, bool_only, skipna])用于判断 DataFrame 中是否至少有一个元素在指定轴上为 True
DataFrame.clip([lower, upper, axis, inplace])用于截断(限制)DataFrame 中的数值
DataFrame.corr([method, min_periods, …])用于计算 DataFrame 中各列之间的相关系数矩阵(Correlation Matrix)
DataFrame.corrwith(other[, axis, drop, …])用于计算当前 DataFrame 的每一列(或行)与另一个 Series 或 DataFrame 中对应列的相关系数
DataFrame.count([axis, numeric_only])用于统计 DataFrame 中每列或每行的非空(非 NaN)元素数量
DataFrame.cov([min_periods, ddof, numeric_only])用于计算 DataFrame 中每对列之间的协方差
DataFrame.cummax([axis, skipna])用于计算 DataFrame 中每列或每行的累计最大值(cumulative maximum)
DataFrame.cummin([axis, skipna])用于计算 DataFrame 中每列或每行的累计最小值(cumulative minimum)
DataFrame.cumprod([axis, skipna])用于计算 DataFrame 中每列或每行的累计乘积(cumulative product)
DataFrame.cumsum([axis, skipna])用于计算 DataFrame 中每列或每行的累计和(cumulative sum)
DataFrame.describe([percentiles, include, …])用于快速生成数据集的统计摘要(summary statistics)
DataFrame.diff([periods, axis])用于计算 DataFrame 中相邻行或列之间的差值(差分)
DataFrame.eval(expr, *[, inplace])用于在 DataFrame 上下文中高效地执行字符串形式的表达式运算
DataFrame.kurt([axis, skipna, numeric_only])用于计算 DataFrame 中每列或每行的峰度(Kurtosis)
DataFrame.kurtosis([axis, skipna, numeric_only])用于计算 DataFrame 中每列或每行的峰度(Kurtosis)
DataFrame.max([axis, skipna, numeric_only])用于计算 DataFrame 中每列或每行的最大值(maximum)
DataFrame.mean([axis, skipna, numeric_only])用于计算 DataFrame 中每列或每行的平均值(mean)
DataFrame.median([axis, skipna, numeric_only])用于计算 DataFrame 中每列或每行的中位数(median)
DataFrame.min([axis, skipna, numeric_only])用于计算 DataFrame 中每列或每行的最小值(minimum)
DataFrame.mode([axis, numeric_only, dropna])用于查找 众数(出现频率最高的值) 的方法
DataFrame.pct_change([periods, fill_method, …])用于计算 百分比变化 的方法
DataFrame.prod([axis, skipna, numeric_only, …])用于计算 每列或每行元素的乘积 的方法
DataFrame.product([axis, skipna, …])用于计算 DataFrame 中每列或每行所有元素的乘积
DataFrame.quantile([q, axis, numeric_only, …])用于计算 分位数(Quantiles) 的方法
DataFrame.rank([axis, method, numeric_only, …])用于计算 DataFrame 中每列或每行元素的排名(rank)
DataFrame.round([decimals])用于对 DataFrame 中的数值进行四舍五入

pandas.DataFrame.round()

pandas.DataFrame.round() 方法用于对 DataFrame 中的数值进行四舍五入,可以指定小数位数或对特定列进行不同的精度设置。该方法常用于数据展示、结果格式化等场景。


📌 方法签名:
DataFrame.round(decimals=0)

🧾 参数说明:
参数类型默认值描述
decimalsint 或 dict-like(如 Series、dict)0指定要保留的小数位数:
- 如果是整数,则所有列都使用相同的精度
- 如果是字典或 Series,可以为每列指定不同的小数位数

📊 返回值
  • 返回一个新的 DataFrame,其中每个元素被四舍五入到指定的小数位数。
  • 非数值列会被自动忽略。
  • NaN 值保持不变。

✅ 示例及结果
示例数据:
import pandas as pddf = pd.DataFrame({'A': [1.234, 2.567, 3.789],'B': [10.111, 20.222, 30.333],'C': [100.444, 200.555, 300.666],'D': ['text', 4.567, 5.678]  # 包含非数值类型
})

输出原始数据:

       A        B        C      D
0  1.234   10.111  100.444   text
1  2.567   20.222  200.555  4.567
2  3.789   30.333  300.666  5.678

示例 1:默认参数(保留 0 位小数)
df.round()

结果:

     A     B      C     D
0  1.0  10.0  100.0  text
1  3.0  20.0  201.0  5.0
2  4.0  30.0  301.0  6.0

解释:

  • 所有数值列都被四舍五入到整数(0 位小数)
  • 字符串列 D 被保留原样(未参与运算)

示例 2:指定保留 1 位小数
df.round(1)

结果:

     A     B      C     D
0  1.2  10.1  100.4  text
1  2.6  20.2  200.6  4.6
2  3.8  30.3  300.7  5.7

解释:

  • 所有数值列保留一位小数
  • 字符串列 D 不受影响

示例 3:按列指定不同精度(使用字典)
df.round({'A': 1, 'B': 2, 'C': 0})

结果:

     A      B      C     D
0  1.2  10.11  100.0  text
1  2.6  20.22  201.0  5.0
2  3.8  30.33  301.0  6.0

解释:

  • 列 A 保留 1 位小数
  • 列 B 保留 2 位小数
  • 列 C 保留 0 位小数(整数)

示例 4:使用 Series 指定各列精度
import pandas as pddecimals = pd.Series({'A': 2, 'B': 1, 'C': 0})
df.round(decimals)

结果:

     A      B      C     D
0  1.23   10.1  100.0  text
1  2.57   20.2  201.0  5.0
2  3.79   30.3  301.0  6.0

解释:

  • 使用 Series 指定每列的精度,效果与字典方式一致

示例 5:处理包含 NaN 的数据
import numpy as npdf_with_nan = pd.DataFrame({'X': [1.234, np.nan, 3.789],'Y': [np.nan, 2.345, 3.456]
})df_with_nan.round(1)

结果:

     X    Y
0  1.2  NaN
1  NaN  2.3
2  3.8  3.5

解释:

  • NaN 值保持不变
  • 其他数值正常四舍五入

示例 6:对整个 DataFrame 设置统一精度
df.round(2)

结果:

     A      B      C     D
0  1.23  10.11  100.44  text
1  2.57  20.22  200.56  4.57
2  3.79  30.33  300.67  5.68

解释:

  • 所有数值列保留两位小数
  • 字符串列 D 不受影响

⚠️ 注意事项
  • 只作用于数值型列(int、float),字符串列不会报错而是保持原样
  • 支持通过字典或 Series 对不同列设置不同精度
  • NaN 值不会被修改
  • 不会改变原始 DataFrame,返回新对象

🎯 适用场景
场景描述
数据展示格式化输出,避免显示过多小数位
模型评估控制预测值的精度以方便比较
特征工程构造离散化的浮点特征
可视化准备减少图表中不必要的精度细节

📋 总结
特性描述
功能对 DataFrame 中的数值进行四舍五入
默认行为所有列保留 0 位小数(整数)
是否修改原数据否,返回新 DataFrame
适用类型数值型列(int、float)
NaN 处理保留原值,不参与四舍五入

round() 是一个非常实用的方法,适合用于数据格式化、展示优化、特征处理等任务。

http://www.xdnf.cn/news/8194.html

相关文章:

  • 深入解读Qwen3技术报告(三):深入剖析Qwen3模型架构
  • 【网络篇】TCP协议的三次握手和四次挥手
  • 动手学深度学习12.5. 多GPU训练-笔记练习(PyTorch)
  • cider指标
  • 光谱相机在地质勘测中的应用
  • leetcode2261. 含最多 K 个可整除元素的子数组-medium
  • JAVA动态生成类
  • 在政务中使用仙盟创梦工具维护曲靖市麒麟公安分局————仙盟创梦IDE
  • WordPress AI插件 新增支持一键批量自动生成WooCommerce 产品描述、产品图、产品评论
  • 开源无界 智联欧陆——仓颉计划携手OpenHarmony共绘万物互联新图景
  • Excel 密码忘记了?巧用PassFab for Excel 解密帮您找回数据!
  • AI 多 Agent 图形化开发深度解析:iVX IDE 与主流产品技术架构对比研究
  • Python项目文件组织与PyCharm实践:打造高效开发环境
  • [AI] 提升Dify工作流性能的技巧:合理安排LLM节点的位置
  • FFmpeg 超级详细安装与配置教程(Windows 系统)
  • NIFI的处理器:RouteOnContent 1.28.1
  • Matlab学习合集
  • Kubernetes上的爬虫排队术——任务调度与弹性扩缩容实战
  • Spring 面试要点深度解析
  • ABP VNext + Elasticsearch 实战:微服务中的深度搜索与数据分析
  • 系统研发进阶:如何构建系统化的技术管理知识体系
  • 在 “Linux 9“ 系统快速安装配置RabbitMQ
  • MySQL索引事务
  • 第七部分:第一节 - 数据库基础与 MySQL 入门:仓库的结构与管理语言
  • 服务器并发实现的五种方法
  • 5G 网络全场景注册方式深度解析:从信令交互到报文分析
  • Linux系统管理与编程16番外篇:PXE自动化安装部署OpenEuler24.03LTS
  • Openwrt下使用ffmpeg配合自建RTSP服务器实现推流
  • OpenHarmony外设驱动使用 (十二),User_auth
  • Java的Filter与Spring的Interceptor的比较