首页 > 解决方案 > 如何在 pandas DataFrame 中格式化特殊小数

问题描述

在 pandas DataFrame 列中,我有这样的数字

2840.189941

四舍五入到小数点后两位:

sp.loc['2019-05-13', 'Open'].round(2) 

而不是得到2840.19,我想将数字格式化为 .25 增量,这样我就得到了这种格式:

2840.25
2840.50
2840.75
...

任何想法如何做到这一点?

标签: pythonpandasdataframedecimal

解决方案


我认为您需要多个 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

推荐阅读