当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


Python Pandas DataFrame round方法用法及代码示例


Pandas DataFrame.round(~) 方法返回 DataFrame,其所有数值根据指定参数进行舍入。

参数

1.decimals | intdictSeries | optional

要舍入的小数位数。舍入的列取决于 decimals 的数据类型:

类型

说明

int

DataFrame 中的所有值都将四舍五入。

dict

只有指定的列才会被四舍五入。

Series

只有指定的列才会被四舍五入。

请注意, decimals=1 意味着像 1.52 这样的值将四舍五入为 1.5 。相反,decimals=-1 会将 13 等值舍入为 10(最接近的第 10 位)。

对于数据类型 dictSeries ,键和索引将是要舍入的列的名称,相应的值是要舍入的小数位数。请参阅下面的示例以进行说明。

默认情况下, decimals=0 ,这意味着值将四舍五入到最接近的整数。

警告

5 结尾的数字将向下舍入。例如,2.53.45 等数字将分别向下舍入为 23.4 ,而不是向上舍入。

返回值

DataFrame,其值根据提供的参数进行舍入。

例子

将所有值四舍五入到最接近的整数

考虑以下 DataFrame :

df = pd.DataFrame({"A":[1.05,2.42],"B":[3.45,4.9]})
df



   A     B
0  1.05  3.45
1  2.42  4.90

要四舍五入到最接近的整数,只需直接调用round()

df.round()



   A    B
0  1.0  3.0
1  2.0  5.0

将所有值四舍五入到最接近的十位

考虑以下 DataFrame :

df = pd.DataFrame({"A":[4,6],"B":[12,18]})
df



   A  B
0  4  12
1  6  18

要舍入到最接近的 10 位,请提供 -1 作为参数:

df.round(-1)



   A   B
0  0   10
1  10  20

将所有值四舍五入到小数点后第一位

考虑以下 DataFrame :

df = pd.DataFrame({"A":[1.07,2.42],"B":[3.45,4.9]})
df



   A     B
0  1.07  3.45
1  2.42  4.90

要四舍五入到小数点后第一位,请提供 1 作为参数:

df.round(1)



   A    B
0  1.1  3.4
1  2.4  4.9

请注意 3.45 如何向下舍入为 3.4 而不是向上舍入为 3.5

仅对某些列进行舍入

我们可以提供 dictSeries 来舍入某些列,而不是提供 int

字典传递

提供 dict 时,键必须是列名称,而值必须是要舍入的小数位。

作为示例,请考虑以下 DataFrame:

df = pd.DataFrame({"A":[4.2,6.6],"B":[12.4,18.9]})
df



   A    B
0  4.2  12.4
1  6.6  18.9

仅将列 A 舍入为最接近的整数,并保持列 B 不变:

df.round({"A":0})



   A    B
0  4.0  12.4
1  7.0  18.9

请注意 B 列如何保持原样。

系列赛通过

同样,当提供 Series 时,索引必须是列名,而值必须是要舍入的小数位。

考虑以下 DataFrame :

df = pd.DataFrame({"A": [4.2,6.6], "B": [12.4,18.9]})
df



   A    B
0  4.2  12.4
1  6.6  18.9

仅将列 A 舍入为最接近的整数,并保持列 B 不变:

decimals = pd.Series([0], index=["A"])
df.round(decimals)



   A    B
0  4.0  12.4
1  7.0  18.9

请注意 B 列如何保持原样。

相关用法


注:本文由纯净天空筛选整理自Isshin Inada大神的英文原创作品 Pandas DataFrame | round method。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。