pandas 控制小数显示与修改精度的方法
在数据处理过程中,经常需要控制小数的显示格式或实际精度。本文介绍在 pandas 中处理小数位数与精度的两种常见场景:控制台打印显示与实际数据修改。通过 pd.set_option 控制显示格式,利用 DataFrame.round() 方法修改实际数值精度,支持全局、列名映射及 Series 指定方式。
控制台打印显示控制
若仅需在控制台或 Notebook 中查看数据时保留特定小数位数,而不改变原始数据,可通过设置 pandas 的显示选项实现:
pd.set_option('precision', 2)该设置仅影响显示效果,实际存储的数据仍保持原始精度。
实际数据精度修改
若需真正修改 DataFrame 中的数值精度,可使用 round() 方法。该方法支持多种指定精度的方式:
1. 全局指定小数位数
对所有数值列统一保留指定小数位数:
df.round(2)2. 按列名指定不同精度
通过字典为不同列设置不同的小数位数:
df.round({'A': 1, 'C': 2})3. 使用 Series 指定精度
通过 Series 对象为各列指定精度,Series 的索引需与 DataFrame 列名匹配:
decimals = pd.Series([1, 0, 2], index=['A', 'B', 'C'])
df.round(decimals)示例说明
以下示例展示了上述三种方式的具体应用:
>>> df = pd.DataFrame(np.random.random([3, 3]),
... columns=['A', 'B', 'C'], index=['first', 'second', 'third'])
>>> df
A B C
first 0.028208 0.992815 0.173891
second 0.038683 0.645646 0.577595
third 0.877076 0.149370 0.491027
>>> df.round(2)
A B C
first 0.03 0.99 0.17
second 0.04 0.65 0.58
third 0.88 0.15 0.49
>>> df.round({'A': 1, 'C': 2})
A B C
first 0.0 0.992815 0.17
second 0.0 0.645646 0.58
third 0.9 0.149370 0.49
>>> decimals = pd.Series([1, 0, 2], index=['A', 'B', 'C'])
>>> df.round(decimals)
A B C
first 0.0 1 0.17
second 0.0 1 0.58
third 0.9 0 0.49以上就是 pandas 控制小数位数与精度的详细内容,更多关于 pandas 数据处理技巧的资料请关注本站其它相关文章!
本站声明
本文内容仅供参考,不代表本站观点。转载或引用请注明出处。如发现内容问题,请通过联系我们页面反馈。













