如何在 Pandas DataFrame 中將浮點數轉換為整數

Asad Riaz 2023年1月30日 2020年2月23日
  1. 在 Pandas 中用 astype(int) 將浮點數 float 轉換為整型 int
  2. to_numeric() 方法將 Pandas 中的 float 轉換為 int
如何在 Pandas DataFrame 中將浮點數轉換為整數

我們將演示法在 Pandas DataFrame 將浮點數轉換為整數的方法-astype(int)to_numeric() 方法。

首先,我們使用 NumPy 庫建立一個隨機陣列,然後將其轉換為 DataFrame

import pandas as pd
import numpy as np
df = pd.DataFrame(np.random.rand(5, 5) * 5)
print(df)

如果執行此程式碼,你將得到如下輸出,資料型別為 float

0 1 2 3 4
00.3024483.5519583.8786602.3803524.741592
14.0541870.9409520.4590584.3148010.524993
22.8917334.9268854.9557732.6263734.144166
31.1276393.1968234.1440201.3506320.401138
41.4235372.0194553.0389450.4366573.823888

在 Pandas 中用 astype(int) 將浮點數 float 轉換為整型 int

要將 float 轉換為 INT,我們將使用 Pandas 包提供的 astype(int) 方法。程式碼是,

import pandas as pd
import numpy as np
df = pd.DataFrame(np.random.rand(5, 5) * 5)
print('*********** Random Float DataFrame ************')
print(df)
print('***********************************************')
print('***********************************************')
print('*********** Dataframe Converted into INT ************')
print(df.astype(int))
print('***********************************************')
print('***********************************************')

輸出:

*********** Random Float DataFrame ************
0 1 2 3 4
01.5106181.0945614.1574194.4241954.872719
10.4576804.0029592.6609991.6869160.840159
21.7817783.8129240.5618270.5323280.752800
31.4565142.7749552.7001184.5033544.749377
42.2235204.8592380.4509773.2284442.541648
***********************************************
***********************************************
*********** Dataframe Converted into INT ************
 01234
011444
104210
213000
312244
424032
***********************************************
***********************************************

我們可以使用 df.round(0).astype(int)float 值四捨五入為 int

import pandas as pd
import numpy as np
df = pd.DataFrame(np.random.rand(5, 5) * 5)
print('*********** Random Float DataFrame ************')
print(df)
print('***********************************************')
print('***********************************************')
print('*********** Dataframe Converted into INT ************')
print(df.astype(int))
print('***********************************************')
print('***********************************************')
print('*********** Rounding Float value to INT ************')
print(df.round(0).astype(int))
print('***********************************************')
print('***********************************************')

執行程式碼後,我們將獲得以下輸出。

*********** Random Float DataFrame ************
0 1 2 3 4
03.3944580.0712023.3132054.7858780.705612
11.9603530.8420851.2123320.8183432.637940
24.4078114.2390781.4190271.5263101.043394
33.6542164.6729721.7964393.1684260.734009
40.8487961.0240521.8593190.8443781.747628
***********************************************
***********************************************
*********** Dataframe Converted into INT ************
 01234
030340
110102
244111
334130
401101
***********************************************
***********************************************
*********** Rounding Float value to INT ************
 01234
030351
121113
244121
345231
411212
***********************************************
***********************************************

to_numeric() 方法將 Pandas 中的 float 轉換為 int

此方法提供了將非數字型別(例如字串)安全地轉換為合適的數字型別的功能。採取單獨的系列並轉換為數字,當被告知時強制

s = pd.Series(['1.0', '2', -3])
print(pd.to_numeric(s, downcast='integer'))

執行程式碼後,我們將獲得以下輸出。

01
12
2 -3
dtype: int8

相關文章 - Pandas DataFrame