我已经使用熊猫创建了一个数据框,我的数字处于e-18等的力量范围内。但是,我所有的数字都四舍五入到小数点后六位,我想将其减少到5 d.p。
我尝试按照建议使用round()函数,但这会将我的所有最小值四舍五入为0.0。我想要例如1.23456e-19的格式。
data = {'n':n, 'Electron O.Radius (m)|':lithiumorbit (n,me),
'Muon O.Radius (m)|':lithiumorbit (n,mmuon), 'Electron Wavelength (m)|':lithiumλ (n,me),
'Muon Wavelength (m)|':lithiumλ (n,mmuon), 'Electron Energy (eV)|':lithiumUn (n,me)*(6.242e18),
'Muon Energy (eV)|':lithiumUn (n,mmuon)*(6.242e18), 'Excited Photon Emission (eV)|':Photonemit,
'Excited Muon Emission (eV)|':Muonemit}
df_=pd.DataFrame(data)
df_.set_index('n', inplace=True)
后续输出为:
Electron O.Radius(m)|Muon O.Radius (m)| Electron Wavelength(m)|
\
n
1 1.763836e-11 8.530499e-14 1.108251e-10
2 7.055344e-11 3.412200e-13 2.216502e-10
3 1.587452e-10 7.677449e-13 3.324752e-10
4 2.822137e-10 1.364880e-12 4.433003e-10
5 4.409590e-10 2.132625e-12 5.541254e-10
6 6.349809e-10 3.070980e-12 6.649505e-10
7 8.642796e-10 4.179945e-12 7.757755e-10
8 1.128855e-09 5.459520e-12 8.866006e-10
9 1.428707e-09 6.909704e-12 9.974257e-10
10 1.763836e-09 8.530499e-12 1.108251e-09
11 2.134241e-09 1.032190e-11 1.219076e-09
12 2.539924e-09 1.228392e-11 1.329901e-09
13 2.980883e-09 1.441654e-11 1.440726e-09
14 3.457118e-09 1.671978e-11 1.551551e-09
15 3.968631e-09 1.919362e-11 1.662376e-09
16 4.515420e-09 2.183808e-11 1.773201e-09
17 5.097486e-09 2.465314e-11 1.884026e-09
18 5.714828e-09 2.763882e-11 1.994851e-09
19 6.367448e-09 3.079510e-11 2.105676e-09
20 7.055344e-09 3.412200e-11 2.216502e-09
根据需要,但位数太多。
设置显示选项:
pd.options.display.float_format = '{:,.5e}'.format
然后只是print(df _)。当然,这仅会更改显示格式。内部所有数字均以“通常”的精度保存。
替代
要以单独的格式显示每一列,您可以使用类似的内容:
df.style.format({
'var1': '{:,.2f}'.format,
'var2': '{:,.2f}'.format,
'var3': '{:,.2%}'.format,
})
根据需要设置列名称及其格式。
您可以使用pandas.DataFrame.round()
如下进行操作。
pandas.DataFrame.round()