PYTHON/etc contents

데이터프레임 만들기

  • -

데이터프레임은 크게 칼럼(열)과 인덱스(행)으로 구분되어 있으며, 각 위치에 접근하는 방법으로 iloc과 loc을 가장 흔히 사용한다. 아래와 같은 데이터프레임이 있다고 가정해보도록 하자. 아래와 같은 데이터프레임을 제작하는 방법으로는 가장 크게 두 가지 방법이 있다. 첫 번째 방법은 딕셔너리를 통해 데이터프레임을 제작하는 것이고, 두 번째 방법은 하나의 행을 제작한 후에 기존에 있는 데이터프레임에 합치는 것이다.

index 칼럼 1(열 1) 칼럼 2(열 2) 칼럼 3(열 3) 칼럼 4(열 4) 칼럼 5(열 5) 칼럼 6(열 6)
1(행 1) a b c d e f
2(행 2) g h i j k l
3(행 3) m n o p q r
4(행 4) s t u v w x

 

 

데이터프레임 제작하기 - (1) 딕셔너리

딕셔너리란 간략하게 설명하자면 {}를 이용해서 정의하며, 그 안에는 키(  Key  ) 값과 그 키(  Key  )에 해당하는 값(  Value  )으로 구성되어 있으며, 값(Value)은 리스트 형태로 입력된다. 작성 예시는 아래와 같다.

  • variable = {'columns1':[], 'columns2':[], 'columns3':[]}

그렇다면 위에서 보았던 표를 제작하기 위해서는 어떤 코드를 입력해야 할까? 일단 딕셔너리의 특정한 키 값에 값을 입력하는 방법은   append()  를 이용하는 것이다. 즉, 'columns1'에 특정 값을 입력하고 싶다면 variable['columns1'].append()와 같은 형태로 제작하면 된다는 것이다. 그러면 코드를 통해 위의 데이터프레임을 만들기 위한 기본 데이터를 입력해보도록 하자.

variable = {'columns1':[], 'columns2':[], 'columns3':[], 'columns4':[]}
variable['columns1'].append('a')
variable['columns2'].append('b')
variable['columns3'].append('c')
variable['columns4'].append('d')
variable['columns1'].append('g')
variable['columns2'].append('h')
variable['columns3'].append('i')
variable['columns4'].append('j')
variable['columns1'].append('m')
variable['columns2'].append('n')
variable['columns3'].append('o')
variable['columns4'].append('p')
variable['columns1'].append('s')
variable['columns2'].append('t')
variable['columns3'].append('u')
variable['columns4'].append('v')

## 출력 결과 ##
{'columns1': ['a', 'g', 'm', 's'], 'columns2': ['b', 'h', 'n', 't'], 'columns3': ['c', 'i', 'o', 'u'], 'columns4': ['d', 'j', 'p', 'v']}

 

이제 이 딕셔너리 값을 기반으로 데이터프레임 형태로 제작할 것인데, 데이터프레임 형태로 만들어주기 위해서는 pandas 라이브러리(모듈)을 임포트해야 한다. 그 후에 pandas 안에 있는 DataFrame 함수를 통해 데이터프레임으로 제작해주면 되는데, 그 방법은 아래와 같다. 즉,   pandas.DataFrame  을 통해 데이터프레임으로 제작해주는 함수를 불러온 후에, 괄호를 열고 가장 먼저 데이터프레임으로 제작할 데이터가 입력되어 있는 변수(  variable  )를 입력해주고, 그 뒤에는   columns=[]  형태로 칼럼의 이름을 하나하나 지정해주면 된다.

result = pandas.DataFrame(variable, columns=['columns1', 'columns2', 'columns3', 'columns4'])

## 출력 결과 ##
  columns1 columns2 columns3 columns4
0        a        b        c        d
1        g        h        i        j
2        m        n        o        p
3        s        t        u        v

 

 


728x90

 

 

데이터프레임 제작하기 (2) - append()

이 방법은 특정한 형태의 데이터프레임이 존재하는 상태에서 사용하는 방법이다. 다시 말해, 이미 제작된 데이터프레임이 있어야 한다는 것인데 그나마 다행인 점은 기존에 제작된 데이터프레임 안에 특정 값이 입력되어 있지 않아도 된다는 것이다. 즉, 빈 데이터프레임이라 하더라도 append()를 사용할 수 있다. 그렇다면 빈 데이터프레임을 제작하는 방법은 무엇일까? 위에서 했던 방법과 동일하지만 값을 입력하는 부분만 생략하면 된다. 아래의 코드를 확인해보자.

variable2 = {'columns1':[], 'columns2':[], 'columns3':[], 'columns4':[]}
result2 = pandas.DataFrame(variable2, columns=['columns1', 'columns2', 'columns3', 'columns4'])

## 출력 결과 ##
Empty DataFrame
Columns: [columns1, columns2, columns3, columns4]
Index: []

 

  result2  를 출력해보니 Empty DataFrame이라 해서 값이 입력되어 있지 않은 데이터프레임이라고 알려주고 있지만, Columns 안에는 우리가 입력했던 칼럼의 이름들이 잘 들어가 있다. 즉, 현재의   result2  변수는 pandas.DataFrame을 통해 데이터프레임으로 만들어줬기 때문에, 자료형은 데이터프레임 형태이다. 궁금하다면   type(result2)  를 이용해서 확인해도 된다.

print(type(result2))

## 출력 결과 ##
<class 'pandas.core.frame.DataFrame'>

 

이제 데이터프레임 형태의 변수(  result2  )에 데이터를 입력하는 방법은 바로 append()인데, 여기서 주의해야 할 점은 append()를 통해 입력할 데이터나 입력받는 데이터나 모두 데이터프레임 형태여야 한다는 것이다. 이번에도 마찬가지로 맨 앞에서 제작했던 표와 같은 데이터프레임을 제작할 것인데, 아래의 코드를 살펴보도록 하자.

variable2 = {'columns1':[], 'columns2':[], 'columns3':[], 'columns4':[]}
result2 = pandas.DataFrame(variable2, columns=['columns1', 'columns2', 'columns3', 'columns4'])

## 새로 입력할 데이터를 데이터프레임으로 제작
data1 = [('a', 'b', 'c', 'd')]
dataframe_data1 = pandas.DataFrame(data1, columns=['columns1', 'columns2', 'columns3', 'columns4'])

## append()를 통해 result2에 값을 입력
result3 = result2.append(dataframe_data1)


## 출력 결과 ##
  columns1 columns2 columns3 columns4
0        a        b        c        d

 

그렇다면 이제 맨 앞에서 제작했던 표와 동일하게 제작해주는 코드는 아래와 같이 제작할 수 있다.

variable2 = {'columns1':[], 'columns2':[], 'columns3':[], 'columns4':[]}
result2 = pandas.DataFrame(variable2, columns=['columns1', 'columns2', 'columns3', 'columns4'])

data1 = [('a', 'b', 'c', 'd')]
dataframe_data1 = pandas.DataFrame(data1, columns=['columns1', 'columns2', 'columns3', 'columns4'])
result3 = result2.append(dataframe_data1)

data2 = [('g', 'h', 'i', 'j')]
dataframe_data2 = pandas.DataFrame(data2, columns=['columns1', 'columns2', 'columns3', 'columns4'])
result4 = result3.append(dataframe_data2)

data3 = [('m', 'n', 'o', 'p')]
dataframe_data3 = pandas.DataFrame(data3, columns=['columns1', 'columns2', 'columns3', 'columns4'])
result5 = result4.append(dataframe_data3)

data4 = [('s', 't', 'u', 'v')]
dataframe_data4 = pandas.DataFrame(data4, columns=['columns1', 'columns2', 'columns3', 'columns4'])
result6 = result5.append(dataframe_data4)


## 출력 결과 ##
  columns1 columns2 columns3 columns4
0        a        b        c        d
0        g        h        i        j
0        m        n        o        p
0        s        t        u        v

 

 

 


728x90
반응형

'PYTHON > etc contents' 카테고리의 다른 글

데이터프레임 인덱스 값 얻어오기  (0) 2021.07.22
데이터프레임 사용하기 - iloc, loc  (0) 2021.07.20
PyCharm 단축키  (2) 2021.06.17
PyCharm 모듈 설치 방법  (0) 2021.06.17
Pandas to_excel 사용 방법  (0) 2021.06.02
Contents

포스팅 주소를 복사했습니다

이 글이 도움이 되었다면 공감 부탁드립니다.