如何格式化 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
在 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