Pandas DataFrame에서 float를 정수로 변환하는 방법
Asad Riaz
2023년1월30일
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에서float
를int
로 변환
float
를int
로 변환하기 위해 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 float
를int
로 변환합니다.
df.round(0).astype(int)
는 Pandas float
수를 0에 가깝게 반올림합니다.
Pandas에서float
를int
로 변환하는to_numeric()
메소드
이 방법은 숫자가 아닌 유형 (예 : 문자열)을 적합한 숫자 유형으로 안전하게 변환하는 기능을 제공합니다.
s = pd.Series(["1.0", "2", -3])
print(pd.to_numeric(s, downcast="integer"))
코드를 실행하면 다음과 같은 결과가 나타납니다.
01
12
2 -3
dtype: int8