看过来
《pandas 教程》 持续更新中,提供建议、纠错、催更等加作者微信: gairuo123(备注:pandas教程)和关注公众号「盖若」ID: gairuo。跟作者学习,请进入 Python学习课程。欢迎关注作者出版的书籍:《深入浅出Pandas》 和 《Python之光》。
round()
方法用于将 DataFrame 或 Series 中的数值数据四舍五入到指定的小数位数。该方法对数值类型的数据进行处理,可以对所有列统一设置小数位数,或者根据每列的需求分别设置不同的小数位数。
将 DataFrame 四舍五入到可变的小数位数。
DataFrame.round(decimals=0, *args, **kwargs)
decimals
:int
, dict
, 或 Series
,默认值是 0
decimals
是一个整数,那么所有列的数据都会被四舍五入到相同的小数位数。decimals
是一个字典(dict
),可以为不同的列指定不同的小数位数。字典的键是列名,值是该列保留的小数位数。decimals
是一个 Series,那么它的索引应该是列名,值是对应列的小数位数。任何不在 decimals
中指定的列将保持原样,不会进行四舍五入。如果 decimals
中包含的元素不是 DataFrame 的列,将被忽略。*args
和 ****kwargs
**:这些是可选的参数,在这个方法中通常不会用到。主要用于扩展性以应对未来的功能增加。
返回一个新的 DataFrame 或 Series,其中的数值已经根据指定的小数位数进行了四舍五入。原数据不变。
round()
方法。df = pd.DataFrame([(.21, .32), (.01, .67), (.66, .03), (.21, .18)],
columns=['dogs', 'cats'])
df
'''
dogs cats
0 0.21 0.32
1 0.01 0.67
2 0.66 0.03
3 0.21 0.18
'''
通过提供整数,每列四舍五入到相同的小数位数:
df.round(1)
'''
dogs cats
0 0.2 0.3
1 0.0 0.7
2 0.7 0.0
3 0.2 0.2
'''
使用dict,可以指定特定列的位数,列名为键,小数位数为值:
df.round({'dogs': 1, 'cats': 0})
'''
dogs cats
0 0.2 0.0
1 0.0 1.0
2 0.7 0.0
3 0.2 0.0
'''
使用Series,可以指定特定列的位数,列名作为索引,小数位数作为值:
decimals = pd.Series([0, 1], index=['cats', 'dogs'])
df.round(decimals)
'''
dogs cats
0 0.2 0.0
1 0.0 1.0
2 0.7 0.0
3 0.2 0.0
'''
假设我们有一个包含商品价格的 DataFrame,其中每个商品的价格有多个小数位。我们可以使用 round()
方法将价格四舍五入到指定的小数位数。
import pandas as pd
# 创建示例数据
data = {
'商品': ['A', 'B', 'C'],
'价格': [123.4567, 89.12345, 45.6789],
'折扣后价格': [110.2345, 79.1234, 40.6789],
'库存': [150, 200, 120]
}
df = pd.DataFrame(data)
# 将价格四舍五入到2位小数,折扣后价格四舍五入到1位小数,库存不变
rounded_df = df.round({'价格': 2, '折扣后价格': 1})
print(rounded_df)
'''
商品 价格 折扣后价格 库存
0 A 123.46 110.2 150
1 B 89.12 79.1 200
2 C 45.68 40.7 120
'''
更新时间:2024-08-08 21:16:54 标签:pandas python 四舍五入 round