python - 如何在 pandas DataFrame 中格式化特殊小数
问题描述
在 pandas DataFrame 列中,我有这样的数字
2840.189941
四舍五入到小数点后两位:
sp.loc['2019-05-13', 'Open'].round(2)
而不是得到2840.19
,我想将数字格式化为 .25 增量,这样我就得到了这种格式:
2840.25
2840.50
2840.75
...
任何想法如何做到这一点?
解决方案
我认为您需要多个 by 4
, useSeries.round
和 divide by 4
:
df = pd.DataFrame({'Open': range(284018, 284100, 5)}) / 100
df['new'] = df['Open'].mul(4).round().div(4)
print (df)
Open new
0 2840.18 2840.25
1 2840.23 2840.25
2 2840.28 2840.25
3 2840.33 2840.25
4 2840.38 2840.50
5 2840.43 2840.50
6 2840.48 2840.50
7 2840.53 2840.50
8 2840.58 2840.50
9 2840.63 2840.75
10 2840.68 2840.75
11 2840.73 2840.75
12 2840.78 2840.75
13 2840.83 2840.75
14 2840.88 2841.00
15 2840.93 2841.00
16 2840.98 2841.00
推荐阅读
- c - 具有柔性阵列成员的不透明结构
- azure-active-directory - 我可以在 Windows Pro 中设置 Active Directory 域服务还是需要 Windows Server 操作系统?
- inheritance - 无法继承 hasMany 属性
- node.js - Nodejs 异步良好实践
- swift - Swift 5 更新后 Firebase Cocoa Pods 错误
- ansible - 使用 Ansible 获取 AWS 实例详细信息
- java - 如何更新 PostgreSQL 数据库中的时间戳列?
- laravel - 使用 PhpUnit 测试在 Laravel 5 包中包含 @include 或 @extend 指令的刀片视图
- javascript - 如何在本机反应中有条件地呈现警报组件
- c# - 限制从课堂外访问财产