2차원형태의 자료구조를 만들 때 유용한 자료구조
0,1,2를 행
a,b,c를 열로 구성해보자
|
a
|
b
|
c
|
0
|
a0
|
b0
|
c0
|
1
|
a1
|
b1
|
c1
|
2
|
a2
|
b2
|
c2
|
위 같은 형태의 자료구조를 만들 때 사용하면 편하다.
우선 딕셔너리를 만든다.
from pandas import DataFrame
dict_temp = {'a': ['a0', 'a1', 'a2'],
'b':['b0', 'b1', 'b2'],
'c':['c0', 'c1', 'c2']}
df_temp = DataFrame(dict_temp)
print(df_temp)
위같은 결과가 나온다.
배열의 index에 따라 자동으로 번호가 할당되었다.
열에 접근할 때는 원래 python에서 하는 딕셔너리 접근 방식과 동일하다.
df_temp['a']
DataFrame은 개체 생성 시에 columns을 통해 컬럼 순서를 변경할 수 있다.
dict_temp = {'a': ['a0', 'a1', 'a2'],
'b':['b0', 'b1', 'b2'],
'c':['c0', 'c1', 'c2']}
df_temp = DataFrame(dict_temp, columns=['b', 'a', 'c'])
print(df_temp)
추가로 index에 자동으로 붙는 숫자를 Series 개체처럼 임의로 수정할 수 있다.
이는 생성 시에 index를 통해 가능하다.
dict_temp = {'a': ['a0', 'a1', 'a2'],
'b':['b0', 'b1', 'b2'],
'c':['c0', 'c1', 'c2']}
df_temp = DataFrame(dict_temp, index =['00','01','02'])
print(df_temp)
이같이 변경할 수 있는 이유는 DataFrame 개체에서 column들이 Series로 구성되어 있기 때문이다.
Dictionary -> Series -> DataFrame
dict_temp = {'a': ['a0', 'a1', 'a2'],
'b':['b0', 'b1', 'b2'],
'c':['c0', 'c1', 'c2']}
df_temp = DataFrame(dict_temp, index =['00','01','02'])
print('df_temp["a"] type = %s' % type(df_temp['a']))
이번에는 열이아닌 행에 접근해보자. 행은 DataFrame.loc[행 이름] 으로 접근한다.
DataFrame에서 컬럼에 접근한 것처럼 접근하려고 하면 에러가 발생한다.
DataFrame에서 컬럼에 접근한 것처럼 접근하려고 하면 에러가 발생한다.
print(df_temp['00']))
dict_temp = {'a': ['a0', 'a1', 'a2'],
'b':['b0', 'b1', 'b2'],
'c':['c0', 'c1', 'c2']}
df_temp = DataFrame(dict_temp, index =['00','01','02'])
print(df_temp.loc['00']))
print('df_temp["00"] type = %s' % type(df_temp.loc['00']))
위 같이 접근해서 얻은 행 데이터도 열과 마찬가지로 Series 개체이다.
DataFrame의 행에 대한 정보는 .index
DataFrame의 열에 대한 정보는 .columns
를 통해 얻을 수 있다.
print(df_temp.index)
print(df_temp.columns)
'프로그래밍' 카테고리의 다른 글
직접코딩으로 PyQt 윈도우를 구성해보자 (0) | 2020.12.29 |
---|---|
python dictionary의 키만 복사 사용 (0) | 2020.12.22 |
pandas의 Series 개체의 인덱싱값 지정 (0) | 2020.12.21 |
TortoiseSVN를 이용한 프로젝트 업로드(eclipse의 share) (0) | 2019.08.28 |
IIS 서버 호출시 기본 디렉터리 탐색현상 처리 (0) | 2019.07.23 |