본문 바로가기
Python/Pandas

Python 기초: DataFrame 만들기

by 모두의 케빈 2022. 11. 3.

안녕하세요. 모두의 케빈입니다.

오늘은 실제 현업에서도 굉장히 많이 사용되는 Pandas 중, DataFrame를 만드는 방법에 대해 알아보겠습니다.

 

첫 번째 방법: read_excel(csv)

 

Excel 파일(또는 csv)를 Pandas로 불러오면, 자연스럽게 DataFrame 형태가 됩니다. 아마도 현업에서 가장 많이 사용하는 방법일 것 같습니다.

# DataFrame 생성

df = pd.read_excel("employee_list.xlsx")
df

 

 

 

 

 

사번을 index로 사용하고 싶다면, 아래와 같이 지정해주세요.

df = pd.read_excel("employee_list.xlsx",index_col = "사번")
df

 

 

 

 

 

 

두 번째 방법: dictionary

 

종종 코딩을 하다보면, 직접 DataFrame을 선언해야 하는 경우가 있습니다. 이럴 때, 아래의 방법들을 활용해보세요. 우선 Python의 dictionary를 활용하는 방법입니다. dict를 활용하면 key값이 Column명이 됩니다.

employee_dict = {"사번":[20000510,20100829,20150317,20201109],
                 "성명":["최영자", "이미숙", "박철수", "김영수"],
                 "직급":["차장", "과장", "대리", "사원"],
                 "급여":[500,400,300,200]}

df = pd.DataFrame(employee_dict)

 

 

 

 

 

선언된 DataFrame의 index는 아래와 같이 변경합니다.

employee_dict = {"사번":[20000510,20100829,20150317,20201109],
                 "성명":["최영자", "이미숙", "박철수", "김영수"],
                 "직급":["차장", "과장", "대리", "사원"],
                 "급여":[500,400,300,200]}

df = pd.DataFrame(employee_dict)

df.set_index("사번", inplace=True)
df

 

 

 

 

 

 

세 번째 방법: List 활용

 

친숙한 List를 활용해서 DataFrame을 만들 수 있다. 단, 이 경우 하나의 List가 DataFrame에서 하나의 행(Row)이 되는 점을 주의해야 합니다. (List를 차곡 차곡 아래에서부터 위로 쌓는다고 생각하세요.)

columns = ["사번","성명","직급","급여"]

row1 = [20000510, "최영자", "차장", 500]
row2 = [20100829, "이미숙", "과장", 400]
row3 = [20150317, "박철수", "대리", 300]
row4 = [20201109, "김영수", "사원", 200]

df = pd.DataFrame([row1,row2,row3,row4], columns = columns)
df.set_index("사번", inplace = True)
df

 

 

 

 

 

 

설정했던 Index는 변경할 수 있습니다. 단, 주의할 점은 index를 바로 변경하면 기존에 설정했던 index가 사라집니다. 사번을 index로 설정한 뒤, 변경하면 사번에 대한 정보가 사라지는 것입니다. 그래서, index를 변경할 때는 반드시 reset을 먼저 시켜줘야 합니다.

columns = ["사번","성명","직급","급여"]

row1 = [20000510, "최영자", "차장", 500]
row2 = [20100829, "이미숙", "과장", 400]
row3 = [20150317, "박철수", "대리", 300]
row4 = [20201109, "김영수", "사원", 200]

df = pd.DataFrame([row1,row2,row3,row4], columns = columns)
df.set_index("사번", inplace = True)

#index 초기화
df.reset_index(drop = False, inplace = True)
df

 

 

 

 

 

네 번째 방법: Numpy array

 

마지막으로 np.arrary를 활용하여 DataFrame을 만들어보겠습니다. 방법은 List와 동일합니다.

import numpy as np

columns = ["사번","성명","직급","급여"]

np_row1 = np.array([20000510, "최영자", "차장", 500])
np_row2 = np.array([20100829, "이미숙", "과장", 400])
np_row3 = np.array([20150317, "박철수", "대리", 300])
np_row4 = np.array([20201109, "김영수", "사원", 200])

df = pd.DataFrame([np_row1, np_row2, np_row3, np_row4], columns = columns)
df.set_index("사번", inplace = True)
df

댓글