DataFrame
의 경우, dtypes
attribute를 통해 각 column의 data type을 가지고 있음. (Series
형임)
DataFrame
객체들을 서로 빼주는 등의 연산을 할 때, numberic type이 아닌 column이 있을 경우 문제가 발생함.
때문에 numberic type으로 구성된 columns를 추출해야 하는 경우가 있음.
다음의 코드를 참고할 것.
import pandas as pd
df = pd.DataFrame(
{
"test_id" : [ 0, 1, 2, 3, 4, 5],
"test_int": [ 10, 20, 30, 40, 50, 60],
"test_obj0": [ "a", "b", "c", "d", "e", "f"],
"test_float": [0., 1., 2., 3., 4., 5.],
"test_obj1": [ "A", "B", "C", "D", "E", "F"]
}
)
# object가 아닌 column들로 구성된 series의 index를 통해, 숫자로 구성된 column들만을 추출함.
df_num = df[df.dtypes[df.dtypes != 'object'].index]
df_num
특정 데이터 타입에 해당하는 columns를 추출하는 보다 단순한 방법은
DataFrame
의 객체에서 지원하는 select_dtypes
메서드를 사용하는 것임.
df_num = df.select_dtypes(include=[np.number])
df_num
exclude
를 이용하면, 해당 data type이 아닌 columns로 구성된 DataFrame
객체를 얻음.
df_obj = df.select_dtypes(exclude=[np.number])
df_obj
include
와 exclude
를 혼재하여 사용하여 보다 복잡하게 columns를 지정할 수 있음.
Pandas의 주요 자료형.
- numberic type :
np.number
or'number'
로 지정. - string type :
object
- category type :
category
- datetime (날짜 및 시간 관련) type :
np.datetime64
,'datetime'
,'datetime64'
- timedelta type :
'timedelta'
,'timedelta64'
Python의 float
, int
등을 사용할 수도 있음.
'Python' 카테고리의 다른 글
[Python] bytes and bytearray: Binary Data for Python (0) | 2024.01.15 |
---|---|
[python] Text mode vs. Binary mode: File open (0) | 2024.01.15 |
[pandas] merge 예제. (0) | 2024.01.12 |
[pandas] DataFrame 합치기 : concat 과 merge (0) | 2024.01.12 |
[Term] ETL Tools (0) | 2024.01.10 |