isinstance(1, int) # 1이 int형인가? # TRUE isinstance('hi',str) # 'hi'가 스트링인가? # True
if not isinstance(number, int) # number가 int형이 아닌 경우, typeerror를 발생시켜라. raise TypeError("'number' is not an integer.")
import pandas as pd DataFrame.sample(n, frac, replace, weights, random_state, axis) #n : 추출할 표본 개수 / frac : 추출할 표본 비율(0~1) / replace : 복원추출여부 / weight : 가중치부여(칼럼이름) / axis : 0(인덱스기준),1(칼럼기준)
먼저 str과 int가 혼합된 col1을 가진 DataFrame 객체를 만들어 dtype이 object인 열을 만들어 보자.
col1 = ['a','b', 3, 4] df = pd.DataFrame({'col1':col1},index=['row1','row2','row3','row4']) print(df) > col1 row1 a row2 b row3 3 row4 4 print(df.dtypes) > col1 object dtype: object
이제 df에서 형식이 int인 행만 남겨서 인덱싱을 한 뒤. dtype을 살펴보면, 여전히 dtype이 object인 것을 확인 할 수 있다.
df = df.iloc[2:] print(df) > col1 row3 3 row4 4 print(df.dtypes) > col1 object dtype: object
이런 경우에 대해 infer_object는 가장 적당한 dtype을 제안하는 기능을 한다.
print(df.infer_objects().dtypes) > col1 int64 dtype: object
위와 같이 int형식만 남은 df의 col1 열에 대해 가장 적절한 dtype인 int64로 변환된 것을 확인할 수 있다.
reference : https://wikidocs.net/151425