# DataFrame의 특정 칼럼 가져오기
DataFrame의 특정 칼럼을 데이터를 갖고 오려면 특정 컬럼명을 아래와 같이 지정하여 가져올 수 있다.
DataFrame명 ['칼럼명']
>>> data['금액']
0 1500
1 15000
2 1000
3 500
Name: 금액, dtype: int64
# DataFrame의 특정 인덱스의 값 가져오기
DataFrame의 특정 인텍스의 데이터를 갖고 오려면 아래와 같이 지정하여 가져올 수 있다.
DataFrame명.iloc[인덱스순서]
>>> data.iloc[0] #0번째 데이터를 가져오기
code 1
금액 1500
계정과목 매출채권
재무제표 재무상태표
Name: 0, dtype: object
# 파일 인코딩 형식 확인하기 : chardet.detect() 함수
chardet 패키지의 chardet.detect() 함수를 사용하면 문자 인코딩 방식을 알아낼 수 있다
open() 함수로 텍스트 파일을 열 때 mode 매개변수를 바이너리 읽기 모드인 'rb' 로 지정한다
[ 전체 데이터 ]
[ 코드 ]
import chardet
with open(file_address, mode='rb') as f:
d = f.readline()
print(chardet.detect(d))
[ 결과 ]
{'encoding': 'EUC-KR', 'confidence': 0.99, 'language': 'Korean'}
# csv 파일을 DataFrame으로 전환하여 불러오기
- 해야하는것
인코딩 형식 지정 (한글이 포함되어 euc-kr 과 같이 인코딩 형식 지정이 필요할때)
low_memory = False
csv파일에 한글이 포함되어 있는 경우에는 상기와 같이 encoding을 'euc-kr' 또는 'cp949' 또는 'ms949'로 설정할 필요가 있다. 만약 에러가 나는 경우 engine = 'python' 으로 설정하면 된다.
low_memory옵션은 대용량의 데이터를 불러오는 경우 각 칼럼의 데이터 타입(dtype)을 추측하는 것이 매우 많은 메모리를 사용하기 때문에 대용량의 데이터를 불러올때 메모리 에러가 발생하는 경우 이를 False로 설정할 것을 권장한다.
[ 코드 ]
root = "/content/drive/MyDrive/혼공 데이터분석"
file_address = root + "/남산도서관 장서 대출목록 (2021년 04월).csv"
import pandas as pd
df = pd.read_csv(file_address, encoding='EUC-KR', low_memory=False)
[ 결과 ]
df
# dtype
만약 low_memory = False를 사용하지 않는다면 열의 데이터 타입을 자동으로 찾지 않도록 아예 dtype 매개변수로 데이터 타입을 지정할 수 있다
df = pd.read_csv(file_address, encoding='EUC-KR',
dtype = {'ISBN' : str, '세트 ISBN' : str, '주제분류번호' : str})
# 판다스의 함수
read_csv()
콤마(,)로 구분된 파일을 읽는다
read_table()
탭(\t)으로 구분된 파일을 읽는다
# 데이터프레임을 csv 파일로 저장하기
to_csv() 메서드를 이용한다
기본적으로 UTF-8 형식으로 저장하기 때문에 나중에 open() 함수로 파일의 내용을 읽을 때 따로 encoding 매개변수를 사용하지 않아도 된다
[ 저장하기 ]
out_root = "/content/sample_data"
csv_file_path = out_root + "/data2.csv"
df.to_csv(csv_file_path, index = False)
[ 다시 불러오기 ]
file_address = "/content/sample_data/data2.csv"
df3 = pd.read_csv(file_address, low_memory=False)
to_csv()로 저장했으므로 다시 불러올때 encoding 매개변수를 사용하지 않았다
[ 결과 ]
df3
'Knowledge🦢 > 데이터 분석' 카테고리의 다른 글
[Pandas] 판다스 loc 기초 사용법 (1) | 2024.05.01 |
---|---|
[Pandas] 판다스 기초 사용법(1) (1) | 2024.05.01 |
[Python과제] 타이타닉 데이터 분석하기(2)✔️ - 딕셔너리, len, count, sum의 차이, idxmax, 데이터 만들기 (복습필요) (0) | 2024.04.30 |
[Python과제] 타이타닉 데이터 분석하기 (1) - zip, enumerate, len(), pd.isnull(), loc 접근시 주의할점 (0) | 2024.04.30 |
[데이터분석 5주차] 파일 불러오기 및 저장하기, glob, os (0) | 2024.04.30 |