这是p_table.apply(pd.Series.round)
,但它没有小数位
Documentation says
import pandas as pd
Series.round(decimals=0, out=None)
我尝试这个p_table.apply(pd.Series.round(2))
,但得到这个错误:
unbound method round() must be called with Series instance as first argument (got int instance instead)
如何将数据框中的所有元素四舍五入到两位小数?
[编辑]想通了。
import numpy as np
np.round(p_table, decimals=2)
6条答案
按热度按时间wribegjk1#
从
0.17.0
版本开始你可以做.round(n)
mfpqipee2#
ryhaxcpt3#
以下是使用pandasround函数执行此操作的示例可重现的可能方法。
jogvjijk4#
要对C列进行舍入,可以使用以下命令:
输出将为:
mrphzbgm5#
即:
data.apply(lambda x: np.round(x, decimals=2))
--- timeit。100 x的计时器:0.00356676544494是一样的,但是慢一些,就像:
np.round(data,decimals=2)
--- timeit. 100 x的计时器:0.000921095例如,两者都给出:
对于数据:
flvlnr446#
对于那些不想舍入DataFrame而只是想将显示的值限制为
n
小数位数的用户,请改用pd.set_option
。此方法将使笔记本上所有打印的DataFrame都遵循该选项。编辑:
要同时取消科学记数法,请用途:
编辑2:
结合IPython和pandas选项上下文管理器,您可以用途:
编辑3
最新的panda更改了
set_option
上的API。我不知道它是什么时候更改的,但是1.5.1和更高版本使用'display.precision'
而不是'precision'
:奖励:
对于
numpy
,请用途:如欲了解更多信息,请访问:https://numpy.org/doc/stable/reference/generated/numpy.set_printoptions.html