簡體   English   中英

如何刪除熊貓中的小數點

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM