본문 바로가기

데이터

판다스(pandas) - 데이터프레임 불러오기/생성/파일로 저장

 

 

 

판다스 사용시 모듈 불러오기

import pandas as 약칭(보통 pd)

 

▶데이터프레임 불러오기

데이터프레임명 = pd.read_csv('경로.csv')

한글정보는 인코딩 오류가 난다. 옵션으로 engine='python' 붙여주는걸로 해결되었다. 이걸로 해결 안되는 경우도 있음.

상위 디렉토리로 가야하는 경우 ../ 을 이용한다. 

파일 경로의 폴더 및 파일명은 가급적 영어로 맞춰두자.

 

대전의 대중교통통계 정보를 불러와봤다.

 

▶데이터프레임 생성하기

 

방법1. 딕셔너리 리스트 사용

딕셔너리리스트명 = [
  {'항목1' : 값1, '항목2 ': 값2 ... , '항목n' : 값n},
  {'항목1' : 값1, '항목2 ': 값2 ... , '항목n' : 값n}, 
  ... ,
  {'항목1' : 값1, '항목2 ': 값2 ... , '항목n' : 값n}
]

데이터프레임명 = pd.DataFrame(딕셔너리리스트명)

*헤더 순서 설정 시
데이터프레임명 = 데이터프레임명[['헤더1', '헤더2', ..., '헤더n']]
을 덧붙여준다.

예)
friend_dict_list = [ 

  {'name': 'John', 'age' : 25, 'job': 'student'}, 
  {'name': 'Nate', 'age' : 30, 'job': 'teacher'}, 
  {'name': 'Lang', 'age' : 24}, 
  {'name': 'Dan', 'age' : 26, 'job': 'worker'}
]
df = pd.DataFrame(friend_dict_list)
df = df[['name', 'age', 'job']]

방법2. Ordered dictionary 사용

from collections import OrderedDict

정렬딕셔너리명 = OrderedDict(
  [
    ('항목1', [값1, 값2, ... , 값n]),
    ('항목1', [값1, 값2, ... , 값n]),
    ...,
    ('항목1', [값1, 값2, ... , 값n])
  ]
)

데이터프레임명 = pd.DataFrame.from_dict(정렬딕셔너리명)

예)
from collections import OrderedDict

freind_ordered_dict = OrderedDict(
  [
    ('name', ['John', 'Nate', 'Lang', 'Dan']),
    ('age', [25, 30, 24, 26]),
    ('job', ['student', 'teacher', '', 'worker'])
  ]
)
df = pd.DataFrame.from_dict(freind_ordered_dict)

방법3. 리스트 사용

리스트명 = [
  ['값1', '값2', .... '값n'],
  ['값1', '값2', .... '값n'],
  ..., 
  ['값1', '값2', .... '값n']
]

칼럼리스트명 = ['헤더1', '헤더2', ..., '헤더n']
데이터프레임명 = pd.DataFrame.from_records(리스트명, 칼럼리스트명)

예)
friend_list = [
  ['John', 25, 'student'],
  ['Nate', 30, 'teacher'],
  ['Lang', 24, ''], 
  ['Dan', 26, 'worker']
]
column_name = ['name', 'age', 'job']
df = pd.DataFrame.from_records(friend_list, columns = column_name)

 

▶데이터프레임 보기

기본적으로는 데이터프레임 이름만을 입력하면 된다.

상위 5개 보기

데이터프레임명.head()

괄호에 숫자를 넣으면 그 수만큼 출력된다.

하위 5개 보기

데이터프레임명.tail()

괄호에 숫자를 넣으면 그 수만큼 출력된다.

상위 3개 보기

 

▶데이터프레임을 파일로 내보내어 저장하기

데이터프레임이름.to_csv('파일명.csv')

부가옵션

index=True/False - 인덱스 번호 표기. 기본 True
header=True/False - 데이터의 헤더 표기. 기본 True
na_rep = '-' -값이 없는 null 표기방법. 기본 공백.
예) df.to_csv('filename.csv', index=False, na_rep='none')

1.기본 옵션
2.index=False 옵션 적용
3.index=False, heade=False, na_rep='-' 옵션적용