Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
Tags
- flet
- android
- Database
- JVM
- 역학
- GIT
- 시스템
- lombok
- 파이썬
- 유닉스
- 리눅스
- 인프라
- chatGPT's answer
- 소프트웨어공학
- Java
- 코틀린
- 자바암호
- 뉴턴역학
- write by chatGPT
- NIO
- 자바네트워크
- oracle
- python
- write by GPT-4
- 고전역학
- 웹 크롤링
- kotlin
- GPT-4's answer
- Spring boot
- 자바
Archives
- Today
- Total
Akashic Records
Pandas 텍스트 및 이진 데이터 읽기 본문
728x90
판다스(Pandas)는 다양한 형태의 데이터를 읽고 쓸 수 있는 강력한 입출력 기능을 제공합니다. 특히 텍스트와 이진 데이터를 읽기 위한 함수들이 제공되며, 이를 통해 데이터 분석과 조작 작업을 쉽게 시작할 수 있습니다.
텍스트 데이터 읽기
pd.read_csv()
- 가장 흔히 사용되는 함수 중 하나로, 쉼표로 구분된 값(CSV) 파일을 읽어
DataFrame
을 생성합니다. - 구분자를 변경하여 다른 텍스트 파일 형식(TSV 등)도 읽을 수 있습니다.
- 가장 흔히 사용되는 함수 중 하나로, 쉼표로 구분된 값(CSV) 파일을 읽어
pd.read_table()
- 기본적으로 탭(
\t
)으로 구분된 데이터를 읽기 위해 사용됩니다. sep
매개변수를 통해 다른 구분자를 지정할 수 있습니다.
- 기본적으로 탭(
pd.read_fwf()
- 고정 너비의 열을 갖는 텍스트 파일을 읽을 때 사용합니다.
- 열의 너비를 지정할 수 있습니다.
이진 데이터 읽기
pd.read_pickle()
- 파이썬의 피클 형식으로 저장된 객체를 읽어옵니다.
- 데이터의 파이썬 객체를 그대로 저장하고 복원할 수 있어, 데이터 타입과 인덱스가 유지됩니다.
pd.read_hdf()
- HDF5 형식의 파일을 읽을 때 사용합니다.
- 대용량 데이터의 효율적인 저장과 접근을 지원합니다.
pd.read_feather()
- Feather 형식의 파일을 읽을 때 사용합니다.
- R과 파이썬 간 데이터 교환을 위해 설계된 경량의 바이너리 형식입니다.
예시 코드
import pandas as pd
# CSV 파일 읽기 예시
df_csv = pd.read_csv('example.csv')
print("CSV:\n", df_csv.head())
# Tab 구분된 파일 읽기 예시
df_tsv = pd.read_csv('example.tsv', delimiter='\t')
print("TSV:\n", df_tsv.head())
# 피클 파일 읽기 예시
df_pickle = pd.read_pickle('example.pkl')
print("Pickle:\n", df_pickle.head())
# HDF5 파일 읽기 예시 (HDF5 파일 경로와 'key'를 지정해야 함)
# df_hdf = pd.read_hdf('example.h5', 'table_key')
# print("HDF5:\n", df_hdf.head())
# Feather 파일 읽기 예시 (Feather 파일 경로 지정)
# df_feather = pd.read_feather('example.feather')
# print("Feather:\n", df_feather.head())
클립보드, 엑셀, HTML, JSON, SQL, XML 등의 다양한 형식이 포함됩니다. 각각의 형식을 읽기 위한 판다스 함수들을 예시 코드와 함께 설명하겠습니다.
1. 클립보드에서 데이터 읽기
pd.read_clipboard()
- 시스템 클립보드의 데이터를 읽어서 DataFrame으로 변환합니다.
- 테스트 및 데모 목적으로 유용합니다.
2. 엑셀 파일 읽기
pd.read_excel()
- 엑셀 파일(.xlsx, .xls)에서 데이터를 읽습니다.
sheet_name
매개변수를 통해 특정 시트를 지정할 수 있습니다.
3. HTML 파일 읽기
pd.read_html()
- HTML 파일 내의
<table>
태그를 분석하여 DataFrame 리스트를 반환합니다. - 웹 페이지에서 테이블 데이터를 직접 읽어올 수 있습니다.
- HTML 파일 내의
4. JSON 파일 읽기
pd.read_json()
- JSON 형식의 문자열이나 파일을 DataFrame으로 변환합니다.
- 다양한 JSON 구조에 맞게
orient
매개변수를 조정할 수 있습니다.
5. SQL 데이터베이스에서 읽기
pd.read_sql()
- SQL 쿼리 결과를 DataFrame으로 변환합니다.
- SQLAlchemy나 SQLite를 사용하여 데이터베이스에 연결할 수 있습니다.
6. XML 파일 읽기
pd.read_xml()
- XML 파일 또는 문자열에서 데이터를 읽어 DataFrame으로 변환합니다.
- XML의 구조에 따라
xpath
매개변수를 사용하여 특정 요소를 지정할 수 있습니다.
예시 코드
import pandas as pd
# 엑셀 파일 읽기 예시
df_excel = pd.read_excel('example.xlsx')
print("Excel:\n", df_excel.head())
# HTML 파일 읽기 예시 (예를 들어, 웹 페이지 URL)
# df_html_list = pd.read_html('http://example.com/table_page.html')
# print("HTML Table:\n", df_html_list[0].head())
# JSON 파일 읽기 예시
df_json = pd.read_json('example.json')
print("JSON:\n", df_json.head())
# SQL 쿼리 읽기 예시 (예를 들어, SQLite 데이터베이스 사용)
# import sqlite3
# connection = sqlite3.connect('example.db')
# df_sql = pd.read_sql('SELECT * FROM my_table', con=connection)
# print("SQL:\n", df_sql.head())
# XML 파일 읽기 예시
# df_xml = pd.read_xml('example.xml', xpath='//myElement')
# print("XML:\n", df_xml.head())
가장 흔히 사용되는 함수 read_csv
pandas.read_csv()
함수는 CSV 파일을 읽을 때 다양한 옵션을 제공하여 파일의 다양한 형식에 유연하게 대응할 수 있습니다. 여기에는 다양한 매개변수가 포함되어 있어, 데이터를 읽는 과정을 상세하게 제어할 수 있습니다. 주요 옵션들을 아래에 설명하겠습니다:
1. 파일 경로 및 데이터 소스
filepath_or_buffer
: 문자열, pathlib.Path, py._path.local.LocalPath 또는 파일 객체를 포함할 수 있습니다. URL을 포함한 다양한 파일 경로나 객체를 지정할 수 있습니다.
2. 구분자 및 인코딩
sep
또는delimiter
: 각 라인의 필드를 구분하는 문자를 설정합니다. 기본값은,
입니다.encoding
: 파일의 문자 인코딩을 지정합니다. 예를 들어,'utf-8'
,'latin-1'
등이 있습니다.
3. 헤더 및 인덱스 처리
header
: 헤더(열 이름)가 있는 행의 번호를 지정합니다. 기본값은0
이며, 헤더가 없을 경우None
으로 설정할 수 있습니다.index_col
: 인덱스로 사용할 열 번호나 이름을 지정합니다. 기본적으로 None이며, 자동으로 0부터 시작하는 정수 인덱스가 생성됩니다.
4. 데이터 타입 처리
dtype
: 열의 데이터 타입을 사전 형식으로 지정할 수 있습니다. 예:dtype={'ID': int, 'age': float}
.
5. 결측치 처리
na_values
: 결측치로 인식할 값을 지정합니다. 추가적으로 인식시킬 값들을 리스트 형태로 제공할 수 있습니다.keep_default_na
: 기본 결측치 값들(NaN, NA 등)을 유지할지 여부를 결정합니다.na_filter
: 결측치 필터링을 활성화할지 설정합니다. 큰 데이터셋에서 성능을 향상시킬 수 있습니다.
6. 날짜 및 시간 파싱
parse_dates
: 날짜/시간 정보를 파싱할 열을 지정합니다. 리스트 형태로 제공할 수 있으며, 여러 열을 결합하여 날짜를 파싱할 수도 있습니다.
7. 조각 처리
chunksize
: 파일을 조각(chunk) 단위로 읽을 때 각 조각의 행 수를 지정합니다. 큰 파일을 다룰 때 유용합니다.iterator
: 파일을 조각으로 읽을 것인지를 불리언 값으로 설정합니다.
8. 기타 유용한 옵션
skiprows
: 시작할 때 무시할 행의 수나 리스트를 지정할 수 있습니다.nrows
: 읽을 행의 수를 지정합니다.usecols
: 읽을 열을 지정할 수 있으며, 열 이름이나 열 번호 리스트를 사용할 수 있습니다.comment
: 주석으로 처리할 문자를 설정합니다. 예를 들어,#
뒤에 오는 데이터는 무시됩니다.
예시 코드
import pandas as pd
# CSV 파일 읽기, 특정 옵션 설정
df = pd.read_csv('example.csv',
sep=',',
header=0,
index_col=None,
usecols=['Name', 'Age', 'Gender'],
dtype={'Age': float},
parse_dates=['Date'],
skiprows=2,
nrows=100,
na_values=['NA', 'Missing'])
print(df.head())
이 예시에서는 read_csv()
함수를 사용하여 여러 가지 옵션을 설정하고 데이터를 읽는 방법을 보여줍니다. 데이터의 성격과 필요에 따라 이러한 옵션들을 조정하여 사용할 수 있습니다.
728x90
'Python for Beginners' 카테고리의 다른 글
범주형 데이터 관리 Categorical (1) | 2024.07.23 |
---|---|
Anaconda 설치 및 사용법 (0) | 2024.07.16 |
Jupyter notebook 외부에서 접속하기 (0) | 2024.07.16 |
[추가자료] 8.3 웹 프레임워크 - Django Model (0) | 2024.06.21 |
[추가자료] 8.3 웹 프레임워크 - Django Templates (1) | 2024.06.19 |
Comments