Pandas DataFrame에서 float를 정수로 변환하는 방법

Asad Riaz 2023년1월30일
  1. astype(int)-Pandas에서floatint로 변환
  2. Pandas에서floatint로 변환하는to_numeric()메소드
Pandas DataFrame에서 float를 정수로 변환하는 방법

Pandas DataFrame-astype(int)to_numeric()메소드에서 float를 정수로 변환하는 메소드를 시연합니다.

먼저,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

astype(int)-Pandas에서floatint로 변환

floatint로 변환하기 위해 Pandas DataFrame.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
0  3.629665  2.552326  3.995622  3.155777  4.715785
1  1.597920  2.090324  0.511498  1.936061  1.286486
2  1.051634  3.550839  2.468125  4.213684  2.329477
3  3.443836  2.749433  1.560226  3.037708  2.966934
4  4.686530  2.096314  4.028526  4.253299  1.175233
***********************************************
***********************************************
*********** Dataframe Converted into INT ************
   0  1  2  3  4
0  3  2  3  3  4
1  1  2  0  1  1
2  1  3  2  4  2
3  3  2  1  3  2
4  4  2  4  4  1
***********************************************
***********************************************

모든 Pandas DataFrame 열을int로 변환합니다.

반올림하여 Pandas DataFrame Column을int로 변환

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
0  4.888469  3.815177  3.993451  0.901108  1.958223
1  1.009212  1.532287  2.689159  1.008482  1.394623
2  4.152496  0.265261  4.667446  4.412533  4.797394
3  0.039770  1.526753  3.778224  0.073072  0.509409
4  1.292580  3.581438  0.759043  3.872206  2.591886
***********************************************
***********************************************
*********** Dataframe Converted into INT ************
   0  1  2  3  4
0  4  3  3  0  1
1  1  1  2  1  1
2  4  0  4  4  4
3  0  1  3  0  0
4  1  3  0  3  2
***********************************************
***********************************************
*********** Rounding Float value to INT ************
   0  1  2  3  4
0  5  4  4  1  2
1  1  2  3  1  1
2  4  0  5  4  5
3  0  2  4  0  1
4  1  4  1  4  3
***********************************************
***********************************************

df.astype(int)는 모든 부동 소수점 숫자를 무시하여 Pandas floatint로 변환합니다.

df.round(0).astype(int)는 Pandas float 수를 0에 가깝게 반올림합니다.

Pandas에서floatint로 변환하는to_numeric()메소드

이 방법은 숫자가 아닌 유형 (예 : 문자열)을 적합한 숫자 유형으로 안전하게 변환하는 기능을 제공합니다.

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

코드를 실행하면 다음과 같은 결과가 나타납니다.

01
12
2 -3
dtype: int8

관련 문장 - Pandas DataFrame