[英]How to remove decimal points in pandas
我有一個 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
如何刪除小數點以使數據框如下所示:
Cut-off <= 35 > 35
Calcium 0 1
Copper 1 0
Helium 0 8
Hydrogen 0 1
我試過df.round(0)
沒有成功。
你有幾個選擇......
1)將所有內容轉換為整數。
df.astype(int)
<=35 >35
Cut-off
Calcium 0 1
Copper 1 0
Helium 0 8
Hydrogen 0 1
2)使用round
:
>>> df.round()
<=35 >35
Cut-off
Calcium 0 1
Copper 1 0
Helium 0 8
Hydrogen 0 1
但並不總是很棒......
>>> (df - .2).round()
<=35 >35
Cut-off
Calcium -0 1
Copper 1 -0
Helium -0 8
Hydrogen -0 1
3)更改Pandas中的顯示精度選項。
pd.set_option('precision', 0)
>>> df
<=35 >35
Cut-off
Calcium 0 1
Copper 1 0
Helium 0 8
Hydrogen 0 1
由於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
df.style.set_precision(2)
也可以應用列特定樣式
df.style.format({
'A': '{:,.1f}'.format,
'B': '{:,.3f}'.format,
})
如果您根本不需要小數,您也可以使用此代碼:
df['col'] = df['col'].astype(str).apply(lambda x: x.replace('.0',''))
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.