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

【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() 是一个非常实用的方法,适合用于数据格式化、展示优化、特征处理等任务。

相关文章:

  • Ubuntu+Docker+内网穿透:保姆级教程实现安卓开发环境远程部署
  • AI智慧高光谱遥感实战精修班暨手撕99个案例项目、全覆盖技术链与应用场景一站式提升方案
  • 加工生产调度(Johnson算法)
  • 重读《人件》Peopleware -(11)Ⅱ 办公环境 Ⅳ 插曲:生产力测量与不明飞行物
  • 浏览器原生 Web Crypto API 实现 SHA256 Hash 加密
  • 架构实践中,指标体系如何科学建立?构建指标体系的五层结构模型是什么?不同架构风格下的指标体系有怎样的差异?
  • 嵌入式软件架构规范之 - 分层设计
  • Cmake+VS2019MSVC编译器编译opencv4.10成功步骤
  • Kotlin 极简小抄 P10(类与对象、主构造函数、带有默认参数值的主构造函数、次要构造函数)
  • python——多线程编程(threading)
  • python实战:如何获取word文档中指定内容并作为新文件名
  • 鸿蒙 HarmonyOS NEXT 系统 Preference 首选项使用全解析
  • 偏微分方程数值方法指南及AI推理
  • springboot3+vue3融合项目实战-大事件文章管理系统-本地存储及阿里云oss程序集成
  • Linux操作系统的优势官方开发App应用程序有哪些优缺点
  • Java进阶之新特性
  • 中科视界,赋能文化产业新世界——千眼狼高速摄像机、DIC测量系统亮相第二十一届中国(深圳)国际文博会
  • VMIC PMV-5565PIORC-21000超高速光纤反射内存硬件参考
  • Argo CD 详解:从 GitOps 到持续交付的完整实践
  • Appium+python自动化(二)- 环境搭建—下
  • 公司网站建设情况/国内电商平台有哪些
  • 适合文章的wordpress/深圳英文站seo
  • 衡水网站设计/杭州seo搜索引擎优化公司
  • 网站开发的发展趋势/nba最新交易动态
  • dedecms做网站视频/百度搜索关键词数据
  • 做网站排名步骤/在线生成网站