[PYTHON] dtype으로 팬더 열 선택
PYTHONdtype으로 팬더 열 선택
Pandas DataFrames에서 데이터 유형 (dtype)별로 열을 선택하기위한 우아하고 간단한 방법이 있는지 궁금합니다. 즉, DataFrame에서 int64 열만 선택하십시오.
정교하게하기 위해,
df.select_columns(dtype=float64)
도움말에 미리 감사드립니다.
해결법
-
==============================
1.
df.loc[:, df.dtypes == np.float64]
-
==============================
2.0.14.1부터 select_dtypes 메소드가 있으므로 좀 더 우아하게 / 일반적으로 할 수 있습니다.
0.14.1부터 select_dtypes 메소드가 있으므로 좀 더 우아하게 / 일반적으로 할 수 있습니다.
In [11]: df = pd.DataFrame([[1, 2.2, 'three']], columns=['A', 'B', 'C']) In [12]: df.select_dtypes(include=['int']) Out[12]: A 0 1
In [13]: df.select_dtypes(include=[np.number]) Out[13]: A B 0 1 2.2 In [14]: df.select_dtypes(exclude=[object]) Out[14]: A B 0 1 2.2
-
==============================
3.
df.select_dtypes(include=[np.float64])
-
==============================
4.모든 부동 dtypes 또는 모든 정수 dtypes 선택 옵션을 추가하여 기존 대답을 확장하고 싶습니다.
모든 부동 dtypes 또는 모든 정수 dtypes 선택 옵션을 추가하여 기존 대답을 확장하고 싶습니다.
데모:
np.random.seed(1234) df = pd.DataFrame({ 'a':np.random.rand(3), 'b':np.random.rand(3).astype('float32'), 'c':np.random.randint(10,size=(3)).astype('int16'), 'd':np.arange(3).astype('int32'), 'e':np.random.randint(10**7,size=(3)).astype('int64'), 'f':np.random.choice([True, False], 3), 'g':pd.date_range('2000-01-01', periods=3) })
수율 :
In [2]: df Out[2]: a b c d e f g 0 0.191519 0.785359 6 0 7578569 False 2000-01-01 1 0.622109 0.779976 8 1 7981439 True 2000-01-02 2 0.437728 0.272593 0 2 2558462 True 2000-01-03 In [3]: df.dtypes Out[3]: a float64 b float32 c int16 d int32 e int64 f bool g datetime64[ns] dtype: object
모든 부동 숫자 열 선택 :
In [4]: df.select_dtypes(include=['floating']) Out[4]: a b 0 0.191519 0.785359 1 0.622109 0.779976 2 0.437728 0.272593 In [5]: df.select_dtypes(include=['floating']).dtypes Out[5]: a float64 b float32 dtype: object
모든 정수 열 선택 :
In [6]: df.select_dtypes(include=['integer']) Out[6]: c d e 0 6 0 7578569 1 8 1 7981439 2 0 2 2558462 In [7]: df.select_dtypes(include=['integer']).dtypes Out[7]: c int16 d int32 e int64 dtype: object
모든 숫자 열 선택 :
In [8]: df.select_dtypes(include=['number']) Out[8]: a b c d e 0 0.191519 0.785359 6 0 7578569 1 0.622109 0.779976 8 1 7981439 2 0.437728 0.272593 0 2 2558462 In [9]: df.select_dtypes(include=['number']).dtypes Out[9]: a float64 b float32 c int16 d int32 e int64 dtype: object
from https://stackoverflow.com/questions/21271581/selecting-pandas-columns-by-dtype by cc-by-sa and MIT license
'PYTHON' 카테고리의 다른 글
[PYTHON] 부스트와 파이썬 3.x (0) | 2018.10.23 |
---|---|
[PYTHON] db.Model 객체를 json으로 직렬화하는 방법? (0) | 2018.10.23 |
[PYTHON] 파이썬으로 터미널 출력을 얻으려면 어떻게해야합니까? [복제] (0) | 2018.10.23 |
[PYTHON] Mac OS X에서 파이썬을 제어하기 - 환경과 라이브러리 설정하기 (0) | 2018.10.23 |
[PYTHON] 장고 양식 '초기'와 '바운드 데이터'의 차이점은 무엇입니까? (0) | 2018.10.23 |