如何格式化 pandas DataFrame 中的特殊小数

How to format special decimals in pandas DataFrame

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

2840.189941

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

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

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

2840.25
2840.50
2840.75
...

任何想法如何完成这个?

我认为你需要乘以 4,使用 Series.round 并除以 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