본문 바로가기
Python (Data)/데이터 가공

[Python Pandas] 데이터프레임 생성, pd.DataFrame() - dictionary to dataframe, list to dataframe, tuple to dataframe

by Gina Sim 2022. 9. 15.

데이터를 처리할 때 제일 기본이자 시작인 "데이터프레임 생성" 입니다.

 

사실 완전히 새로운 데이터를 생성하기 보다는,

이미 존재하는 csv, tsv, txt, xslx 파일을 읽어들여 가공하는 일이 많지만

간혹 리스트들을 가지고 데이터프레임을 만들거나 빈 데이터 프레임을 생성하는 경우는 종종 있습니다.

 

이번 포스팅에서는 데이터프레임을 생성하는 방법을 정리하려 합니다.

 


 

데이터 프레임을 생성하기전 pandas 모듈을 import 해주세요.

import pandas as pd

 

데이터프레임을 생성하는 방법은 pandas 모듈의 DataFrame() 함수를 활용하는 것입니다.

pd.DataFrame( data = , index = , columns = , dtype = , copy = )

DataFrame의 parameters는 위와 같은데 위 parameters를 필요에 따라 적절히 사용하여

새로운 데이터프레임 생성, 리스트나 딕셔너리 데이터를 가지고 데이터프레임 생성 등이 가능합니다.

 

아래 데이터프레임을 여러가지 방법으로 만들어보겠습니다.

  name age sex
0 Kim 25 F
1 Lee 35 F
2 Park 45 M

 

 

1. parameters 값들 직접 입력

df_1 = pd.DataFrame(data = [['Kim','25','F'],['Lee','35','F'],['Park','45','M']], columns = ['name','age','sex'])

* index는 따로 지정해주지 않아도 됨 -> 0부터 index 번호가 생김

* data 값을 넣을때 row가 여러개인 경우 "[ [값 1-1, 값 1-2, 값 1-3], [값 2-1, 값 2-2, 값2-3], [값 3-1, 값 3-2, 값 3-3] ]"과 같은 형식으로 적는다 -> 이때 값 1-1, 1-2,1 -3은 row를 기준으로 같은 row에 있는 값들을 적어준다.

* 값을 적어줄때 형식은 리스트 ( "[ ]" ) 형식으로 적든 튜플 ( "( )" ) 형식으로 적든 상관없다.

* "data=" 글씨 생략 가능

 

 

2. list/ tuple 로 데이터프레임 생성

위 예시에서 조금만 응용해보면 list나 tuple로 데이터 프레임을 만드는 것도 어렵지 않다.

 

아래와 같은 리스트 형태의 데이터들이 있다고 가정할 때, 

name = ['Kim','Lee','Park']
age = ['25','35','45']
sex = ['F','F','M']

 

 

리스트들을 데이터 parameter에 넣어 데이터 프레임을 생성한다.

이때 주의할 점은, 앞서 말했던거 처럼 한 리스트에는 같은 row에 있는 값들을 적어줘야 하기 때문에

위 리스트를 넣으면 우리가 원하는 방향과 행열이 전환되어 생성된다

df_2_1 = pd.DataFrame([name,age,sex], columns = ['name','age','sex'])

tranpose 전

 

이런 데이터 프레임을 우리가 원하는 방향으로 넣어주기 위해 transpose()를 활용한다.

행열 전환을 시켜줄 경우 columns과 index의 위치가 바뀌기 때문에

처음 데이터 프레임을 생성할 때도 columns명으로 지정하고 싶은 이름을 "index = " parameter에 넣어준다.

df_2_2 = pd.DataFrame([name,age,sex], index = ['name','age','sex'])
df_2_2 =  df_2_2.transpose()

 

tuple (튜플) 도 동일한 방법으로 생성 가능하다.

name = ('Kim','Lee','Park')
age = ('25','35','45')
sex = ('F','F','M')

df_2_3 = pd.DataFrame((name,age,sex), index = ['name','age','sex'])
df_2_3 =  df_2_3.transpose()

 

 

3. dictionary 로 데이터프레임 생성

딕셔너리로 만드는 것은 더욱 간단하다.

딕셔너리에는 이미 key값들이 지정되어 있기 때문에 

"columns" parameter에 값을 넣어줄 필요도 없다.

 

아래와 같은 딕셔너리 데이터가 있을때,

 

pd.DataFrame() 안에 dictionary 변수명만 넣어주면 된다.

data= {'name':['Kim','Lee','Park'], 'age': ['25','35','45'], 'sex':['F','F','M']}
df_3= pd.DataFrame(data)

 

 

반응형

댓글