Python, Pandas 및 파일 입출력을 사용하여 텍스트 파일에서 데이터를 로드하는 방법
단계별 가이드
필수 라이브러리 가져오기:
import pandas as pd
텍스트 파일 읽기:
read_csv()
함수를 사용하여 텍스트 파일을 데이터프레임으로 로드합니다. 쉼표(,)가 기본 구분자이지만, 다른 구분자를 사용하는 경우sep
매개변수를 지정할 수 있습니다.data = pd.read_csv('data.txt')
참고:
- 파일 경로가 현재 작업 디렉토리 외부에 있는 경우
filepath
매개변수를 사용하여 절대 경로를 지정해야 합니다. - 텍스트 파일에 헤더가 있는 경우
header
매개변수를True
로 설정합니다. - 텍스트 파일의 인코딩이 UTF-8이 아닌 경우
encoding
매개변수를 사용하여 올바른 인코딩을 지정합니다.
- 파일 경로가 현재 작업 디렉토리 외부에 있는 경우
데이터 확인:
data.head()
Pandas의 다양한 함수를 사용하여 데이터프레임을 조작하고 분석할 수 있습니다.
- 특정 열 선택:
data[['열1', '열2']]
- 행 필터링:
data[data['컬럼'] > 100]
- 통계 계산:
data['컬럼'].mean()
,data['컬럼'].describe()
- 데이터 그래프 생성:
data.plot()
,data['컬럼'].hist()
- 특정 열 선택:
추가 정보
예시
다음 예제는 "data.txt"라는 텍스트 파일에서 데이터를 로드하고 "Age" 열에 대한 평균값을 계산하는 방법을 보여줍니다.
import pandas as pd
# 텍스트 파일 읽기
data = pd.read_csv('data.txt')
# "Age" 열에 대한 평균값 계산
평균_나이 = data['Age'].mean()
# 결과 출력
print("평균 나이:", 평균_나이)
이 코드는 다음과 같은 출력을 생성합니다.
평균 나이: 31.2
예제 코드: 텍스트 파일에서 데이터 로드 및 Pandas 활용
Rank,State,Population (2020)
1,California,39237967
2,Texas,29538100
3,Florida,21477330
4,New York,19237563
5,Illinois,12812508
...
라이브러리 가져오기 및 데이터 로드
import pandas as pd
# 텍스트 파일 읽기
data = pd.read_csv('US_population.txt', sep=',')
데이터 확인
# 데이터프레임의 처음 5행 출력
data.head()
특정 열 선택
# 'State' 및 'Population (2020)' 열만 선택하여 새로운 데이터프레임 만들기
df_filtered = data[['State', 'Population (2020)']]
행 필터링
# 인구가 1000만 명 이상인 주만 선택하여 새로운 데이터프레임 만들기
df_filtered = data[data['Population (2020)'] > 10000000]
통계 계산
# 'Population (2020)' 열의 평균, 최소값, 최대값 계산
평균_인구 = data['Population (2020)'].mean()
최소_인구 = data['Population (2020)'].min()
최대_인구 = data['Population (2020)'].max()
# 결과 출력
print("평균 인구:", 평균_인구)
print("최소 인구:", 최소_인구)
print("최대 인구:", 최대_인구)
데이터 그래프 생성
# 'Population (2020)' 열에 대한 히스토그램 생성
data['Population (2020)'].hist()
데이터 저장
# 데이터프레임을 CSV 파일로 저장
data.to_csv('filtered_data.csv')
주의:
- 이 예제는 기본적인 Pandas 작업만 보여줍니다. Pandas에는 데이터 분석 및 처리를 위한 다양한 함수와 기능들이 존재합니다.
- 필요에 따라 코드를 수정하여 원하는 데이터 조작을 수행할 수 있습니다.
텍스트 파일에서 데이터를 로드하는 대체 방법 (Pandas 제외)
Numpy:
- Numpy는 Python에서 수치 계산을 위한 강력한 라이브러리입니다. 텍스트 파일에서 숫자 데이터를 로드하고 간단한 분석을 수행하는 데 적합합니다.
numpy.loadtxt()
함수를 사용하여 텍스트 파일을 배열로 로드하고,numpy.savetxt()
함수를 사용하여 배열을 텍스트 파일에 저장할 수 있습니다.
예시:
import numpy as np
# 텍스트 파일에서 숫자 데이터 로드
data = np.loadtxt('data.txt')
# 데이터 분석 및 처리
...
# 배열을 텍스트 파일에 저장
np.savetxt('output.txt', data)
CSV 라이브러리:
- CSV 라이브러리는 쉼표(,)로 구분된 값(CSV) 형식의 데이터 처리를 위한 표준 라이브러리입니다.
csv.reader()
함수를 사용하여 CSV 파일을 행별로 읽고,csv.writer()
함수를 사용하여 CSV 파일에 데이터를 쓸 수 있습니다.
import csv
# CSV 파일 읽기
with open('data.csv', 'r') as f:
reader = csv.reader(f)
for row in reader:
# 각 행 처리
...
# CSV 파일에 데이터 쓰기
with open('output.csv', 'w') as f:
writer = csv.writer(f)
writer.writerows(data)
사용자 정의 함수:
- 특정 형식의 텍스트 파일을 처리해야 하는 경우, 사용자 정의 함수를 작성하는 것이 유용할 수 있습니다.
- 파일을 열고, 행별로 데이터를 읽고, 원하는 형식으로 처리하고, 필요한 경우 새로운 파일에 저장하는 로직을 직접 작성해야 합니다.
- 대체 방법을 선택하기 전에 텍스트 파일의 형식, 데이터의 특성, 수행하려는 작업을 고려해야 합니다.
- Pandas는 텍스트 파일 처리를 위한 다양한 기능을 제공하며, 복잡한 작업을 수행할 때 유용합니다.
- 간단한 작업이나 특정 형식의 데이터 처리에는 Numpy, CSV 라이브러리 또는 사용자 정의 함수가 더 적합할 수 있습니다.
python pandas file-io