파이썬 버전 3.7 기준
pandas 버전 0.25.1 기준
DataFrame의 하위 메서드를 사용한 DataFrame의 생성 |
본 포스팅에서는 DataFrame을 구축하기 위한 from_dict() 메서드와, from_records() 메서드를 다룬다.
DataFrame과 Series에 관한 상세 사항은 타 포스팅을 참고하자.
DataFrame.from_dict() 메서드와 DataFrame.from_records() 메서드 |
DataFrame.from_dict() 메서드 |
DataFrame.from_dict() 메서드는 다음과 같은 자료형을 입력으로 가진다.
○ 딕셔너리로 구성된 딕셔너리
○ array-like 시퀀스의 딕셔너리
위의 데이터를 입력받아 DataFrame을 반환한다.
기본적으로는 DataFrame() 함수와 동일하게 작동하나 일부 차이점이 존재한다.
○ orient라는 입력변수를 가지며 'columns'를 기본값으로 가진다.
▷ 'columns'는 딕셔너리의 키를 열의 레이블로 설정하게 한다.
▷ 그러나 'index'가 입력되면 딕셔너리의 키를 행의 레이블로 설정한다.
DataFrame.from_dict() 메서드 사용 예)
# pandas와 numpy의 import
In[2]: import pandas as pd
In[3]: import numpy as np
# from_dict 사용 예제
In[4]: ex_dict = {'a': [1,2,3], 'b': [4,5,6], 'c':[7,8,9]}
In[5]: pd_data1= pd.DataFrame.from_dict(ex_dict)
In[6]: pd_data1
Out[6]:
a b c
0 1 4 7
1 2 5 8
2 3 6 9
# orient와 columns 변수의 활용
In[7]: pd_data1= pd.DataFrame.from_dict(ex_dict, orient='index', columns=['C0', 'C1', 'C2'])
In[8]: pd_data1
Out[8]:
C0 C1 C2
a 1 2 3
b 4 5 6
c 7 8 9
DataFrame.from_records() 메서드 |
DataFrame.from_records() 메서드는 다음과 같은 자료형을 입력으로 받는다.
○ 튜플의 리스트
○ 구조체 자료형을 사용하는 ndarray
이 메서드는 기본적인 DataFrame() 함수와 유사하게 작동한다.
출력되는 DataFrame의 인덱스는 입력된 데이터 중 하나의 필드를 설정할 수 있다.
○ index 입력변수를 사용하면 된다.
DataFrame.from_records() 메서드 사용 예)
# pandas와 numpy의 import
In[2]: import pandas as pd
In[3]: import numpy as np
# from_records 사용 예제
In[9]: ex_ndarray= np.array([(0, 1, 'str0'), (2, 3, 'str1')], dtype=[('a', 'i8'), ('b', 'f8'), ('c', 'S10')])
In[10]: pd_data2=pd.DataFrame.from_records(ex_ndarray)
In[11]: pd_data2
Out[11]:
a b c
0 0 1.0 b'str0'
1 2 3.0 b'str1'
# index 입력변수의 사용
In[12]: pd_data2=pd.DataFrame.from_records(ex_ndarray, index='c')
In[13]: pd_data2
Out[13]:
a b
c
b'str0' 0 1.0
b'str1' 2 3.0
각 메서드의 세부사항 |
DataFrame.from_dict(data, orient='columns', dtype=None, columns=None) |
array-like나 딕셔너리로 구성된 딕셔너리를 사용해 DataFrame을 구축한다.
딕셔너리 객체로부터 DataFrame을 만들때, dtype의 형태를 허가하여 열 혹은 행에 의해 객체를 구성한다.
data: dict
아래 형태의 딕셔너리를 입력받는다.
○ {field1: array-like, ... }
○ {field1: dict, ... }
orient: {'columns', 'index'}
기본값은 'columns' 이다.
데이터의 방향(orientation)을 설정한다.
만약 입력된 딕셔너리의 key들이 열의 레이블로 배정하고 싶다면 'columns'을 입력하자.
반대로 행의 레이블(index)로 배정하고 싶은 경우에는 'index'
dtype: dtype
기본값은 None이다.
출력되는 DataFrame의 dtype을 이 입력변수에 입력되는 값으로 강제적으로 설정한다.
None이 입력될 경우(기본값), 기존의 데이터에서 dtype을 추측한다.
columns: list
기본값은 None이다.
orient='index'일 경우, 열 레이블을 설정한다.
orient='columns'일때, 이 입력변수가 사용되면 ValueError를 발생시킨다.
DataFrame.from_records(data, index=None, exclude=None, columns=None, coerce_float=False, nrows=None) |
data: ndarray(structured dtype), list of tuples, dict, or DataFrame
ndarray(구조체 자료형), 튜플의 리스트, 딕셔너리 혹은 DataFrame을 입력받는다.
index: string, list of fields, array-like
기본값은 None이다.
인덱스로 사용할 배열의 필드를 입력받는다.
이 변수가 입력될 경우 입력 데이터에서의 인덱스 레이블은 무시된다.
exclude: sequence
기본값은 None이다.
출력데이터에서는 제외할 열 혹은 필드를 입력받는다.
columns: sequence
기본값은 None이다.
사용하기 위한 열의 레이블을 입력받는다.
입력된 data에 열의 레이블이 없는 경우에, 이 변수를 입력함으로써 열의 레이블을 입력할 수 있다.
반대로 입력된 data에 열의 레이블이 있다면, 이 변수는 결과에서 열의 순서를 설정한다.
coerce_float: boolean
기본값은 False이다.
문자열이 아니고 숫자형 객체가 아닌 자료형(예제: decimal.Decimal)을 float 형태로 변환하는 것을 시도한다.
이는 SQL 결과 세트로 만드는데 유용하다.
nrows: int
기본값은 None이다.
data가 이터레이터가 입력됬을 시 읽어들이는 열의 수를 설정한다.
'Python > Pandas' 카테고리의 다른 글
데이터 정보 확인(index, columns, shape) - pandas(7) (0) | 2019.10.16 |
---|---|
데이터의 확인(head, tail, print함수 사용) - pandas(6) (0) | 2019.10.15 |
DataFrame 생성, 설명, 소개, 옵션 - pandas(4) (0) | 2019.10.09 |
Series의 상세특징 - pandas(3) (0) | 2019.10.07 |
Series의 생성, 설명, 소개, 옵션 - pandas(2) (0) | 2019.10.06 |
댓글