我有一个pandas数据框,df,看起来像这样:
Cut-off <=35 >35
Calcium 0.0 1.0
Copper 1.0 0.0
Helium 0.0 8.0
Hydrogen 0.0 1.0
Run Code Online (Sandbox Code Playgroud)
如何删除小数点,以便数据框如下所示:
Cut-off <= 35 > 35
Calcium 0 1
Copper 1 0
Helium 0 8
Hydrogen 0 1
Run Code Online (Sandbox Code Playgroud)
我试过df.round(0)没有成功.
Ale*_*der 28
你有几个选择......
1)将所有内容转换为整数.
df.astype(int)
<=35 >35
Cut-off
Calcium 0 1
Copper 1 0
Helium 0 8
Hydrogen 0 1
Run Code Online (Sandbox Code Playgroud)
2)使用round:
>>> df.round()
<=35 >35
Cut-off
Calcium 0 1
Copper 1 0
Helium 0 8
Hydrogen 0 1
Run Code Online (Sandbox Code Playgroud)
但并不总是很棒......
>>> (df - .2).round()
<=35 >35
Cut-off
Calcium -0 1
Copper 1 -0
Helium -0 8
Hydrogen -0 1
Run Code Online (Sandbox Code Playgroud)
3)更改Pandas中的显示精度选项.
pd.set_option('precision', 0)
>>> df
<=35 >35
Cut-off
Calcium 0 1
Copper 1 0
Helium 0 8
Hydrogen 0 1
Run Code Online (Sandbox Code Playgroud)
从pandas 0.17.1开始,您可以通过修改特定数据框的样式而不是设置全局选项来设置显示的数字精度:
import pandas as pd
import numpy as np
np.random.seed(24)
df = pd.DataFrame(np.random.randn(5, 3), columns=list('ABC'))
df
Run Code Online (Sandbox Code Playgroud)
df.style.set_precision(2)
Run Code Online (Sandbox Code Playgroud)
也可以应用列特定的样式
df.style.format({
'A': '{:,.1f}'.format,
'B': '{:,.3f}'.format,
})
Run Code Online (Sandbox Code Playgroud)