08_DataFrame 자료형
| 4 Minute Read on Pandas
DataFrame의 자료형¶
- 기본적으로 pandas는 데이터의 구조를 numpy의 ndarray를 사용하기 때문에 DataFrame의 자료형 역시 ndarray를 따른다.
기본적인 type을 보면
- float64: 실수형 자료형
- int64: 정수형 자료형
- boolean: bool 자료형
- object: 파이선의 객체형 자료형(문자형만 담을 수도 있고 또는 문자형과 숫자형을 같이, 또는 list형을 담을 수 도 있다.
- Pandas에서는 따로 독립적으로 문자형을 사용하지 않는데 그 이유는 numpy의 자료형을 그대로 사용하기 때문이다. numpy는 문자형을 Object형으로 인식함
자료형 DataFrame에서 확인하기 위해서는 dtypes를 사용한다.
자료형 변환을 위해서는 astype()을 사용한다.
- 만약 int형 자료형을 문자로 변환한다면 df['co1'].astype(str)
In [1]:
import pandas as pd
import numpy as np
data = np.random.rand(12).reshape(3,4)
index = [2000, 2001, 2002 ]
columns_index = ['Arizona','Boston', 'Chicago','Detroit']
df = pd.DataFrame(data = data, index = index, columns = columns_index)
In [2]:
#컬럼의 타입을 확인하면 float64인 것을 확인할 수 있다.
(df.dtypes)
Out[2]:
In [3]:
#인텍스를 컬럼으로 변경하여 타입을 확인해도 float64인 것을 확인할 수 있다.
(df.T.dtypes)
Out[3]:
In [4]:
# list를 사용하여 winnder라는 컬럼을 생성
df['Winner'] = ['Arizona', 'Boston','Detroit']
print(df)
# 자료형은 확인하면 문자형 데이터를 이용하여 Winner 컬럼을 생성했기 때문에 Winner는 Object형임
print(df.dtypes)
In [5]:
print(df.T)
# 인덱스를 컬럼으로 변경해 보면 역시 Object형으로 변형이 되어 있음을 확인 할 수 있음
print(df.T.dtypes)
In [6]:
#list로 생성된 Winners 컬럼의 자료형 역시 Object 형임
df['Winners'] = df['Winner'].str.split(',')
print(df)
print(df.dtypes)
In [7]:
#float형을 Object(문자형)으로 바꾸고 문자형 함수를 적용할 수 있음
df['Boston'] = df['Boston'].astype(str)
print(df['Boston'])
print(df.dtypes)
df['Boston'].apply(lambda x: len(x))
df['Boston'].apply(lambda x: len(x))
Out[7]: