Python에서 CSV 파일을 편집 및 업데이트하는 완벽 가이드: 초보자부터 고급 사용자까지

Python은 데이터 처리에서 강력한 도구이며, 특히 CSV 파일의 편집 및 업데이트에 뛰어납니다. 본 기사에서는 Python을 사용하여 CSV 파일을 효율적으로 다루는 방법을 초보자부터 고급 사용자까지 폭넓게 다룹니다. 기본적인 읽기 및 쓰기 방법부터 고급 데이터 필터링, 집계, 에러 핸들링까지 구체적인 코드 예제를 곁들여 상세히 설명합니다.

목차

CSV 파일이란

CSV(Comma-Separated Values) 파일은 데이터를 쉼표로 구분하여 저장하는 텍스트 파일 형식입니다. 일반적으로 데이터베이스나 스프레드시트의 데이터를 교환하기 위해 사용됩니다. 각 행은 레코드를 나타내며, 각 열은 필드를 나타냅니다. CSV 파일은 그 단순함과 높은 호환성 덕분에 널리 사용되고 있습니다.

Python으로 CSV 파일을 읽는 방법

Python에서는 표준 라이브러리의 csv 모듈을 사용하여 간단히 CSV 파일을 읽을 수 있습니다. 아래에 기본적인 읽기 방법을 보여줍니다.

표준 라이브러리를 사용한 CSV 읽기

먼저, Python의 csv 모듈을 사용하여 CSV 파일을 읽는 방법을 소개합니다.

import csv  

# CSV 파일 경로 지정  
csv_file_path = 'data.csv'  

# CSV 파일 열기 및 읽기  
with open(csv_file_path, mode='r', newline='') as file:  
    reader = csv.reader(file)  
    for row in reader:  
        print(row)

이 코드에서는 csv.reader를 사용하여 CSV 파일을 행 단위로 읽고, 각 행을 리스트로 출력합니다.

CSV 파일의 내용을 딕셔너리로 읽기

다음으로, csv.DictReader를 사용하여 CSV 파일을 딕셔너리 형식으로 읽는 방법을 설명합니다. 이 방법은 헤더 행을 키로 사용하고, 각 행의 데이터를 딕셔너리로 처리합니다.

import csv  

# CSV 파일 경로 지정  
csv_file_path = 'data.csv'  

# CSV 파일 열기 및 읽기  
with open(csv_file_path, mode='r', newline='') as file:  
    reader = csv.DictReader(file)  
    for row in reader:  
        print(row)

이 코드에서는 각 행이 딕셔너리로 읽히며, 키는 CSV 파일의 헤더, 값은 해당 데이터가 됩니다.

이러한 방법을 사용하면 Python으로 CSV 파일을 쉽게 읽을 수 있습니다. 다음은 pandas 라이브러리를 사용한 보다 고급 작업 방법에 대해 설명합니다.

pandas를 사용한 CSV 파일 작업

pandas는 데이터 분석을 간편하게 수행할 수 있도록 도와주는 Python 라이브러리로, CSV 파일의 읽기, 편집, 쓰기가 매우 용이합니다. 아래에서는 pandas를 사용한 기본적인 작업 방법을 소개합니다.

pandas 설치

먼저, pandas 라이브러리가 설치되어 있지 않다면, 아래 명령어로 설치합니다.

pip install pandas

CSV 파일 읽기

pandas를 사용하여 CSV 파일을 읽으려면 read_csv 함수를 사용합니다.

import pandas as pd  

# CSV 파일 경로 지정  
csv_file_path = 'data.csv'  

# CSV 파일을 데이터프레임으로 읽기  
df = pd.read_csv(csv_file_path)  

# 데이터프레임 내용 출력  
print(df)

이 코드에서는 read_csv 함수를 사용하여 CSV 파일을 데이터프레임으로 읽고, 데이터를 출력합니다.

CSV 파일 편집

pandas에서는 데이터프레임을 사용하여 데이터를 간단히 편집할 수 있습니다. 아래에 몇 가지 기본적인 편집 방법을 보여줍니다.

열 추가

새로운 열을 추가하려면 아래와 같이 하면 됩니다.

# 새로운 열 'new_column' 추가, 모든 값을 0으로 설정  
df['new_column'] = 0

특정 행 필터링

조건에 따라 행을 필터링하려면 아래와 같이 합니다.

# 'column_name' 값이 특정 조건을 충족하는 행 필터링  
filtered_df = df[df['column_name'] > 10]

CSV 파일 쓰기

편집이 완료된 데이터프레임을 CSV 파일로 쓰려면 to_csv 함수를 사용합니다.

# 데이터프레임을 CSV 파일로 쓰기  
df.to_csv('output.csv', index=False)

이 코드에서는 데이터프레임 내용을 새로운 CSV 파일에 저장합니다. index=False를 지정하면 행 번호가 저장되지 않습니다.

pandas를 사용하면 CSV 파일의 읽기부터 편집, 쓰기까지 일관되게 작업할 수 있습니다. 다음은 CSV 파일 데이터를 필터링하는 방법에 대해 설명합니다.

CSV 파일의 데이터를 필터링하기

CSV 파일의 데이터를 필터링하여 특정 조건에 맞는 데이터만 추출할 수 있습니다. pandas를 사용하면 간단하게 데이터를 필터링할 수 있습니다.

기본적인 필터링 방법

pandas에서는 조건을 지정하여 데이터프레임을 필터링할 수 있습니다. 아래에 기본적인 필터링 예제를 보여줍니다.

import pandas as pd

# CSV 파일 경로 지정
csv_file_path = 'data.csv'

# CSV 파일을 데이터프레임으로 읽어오기
df = pd.read_csv(csv_file_path)

# 'column_name'의 값이 특정 조건을 만족하는 행을 필터링
filtered_df = df[df['column_name'] > 10]

# 필터링된 데이터프레임 출력
print(filtered_df)

이 코드에서는 column_name의 값이 10보다 큰 행을 추출하고 있습니다.

복수 조건으로 필터링하기

복수의 조건을 조합하여 필터링하는 것도 가능합니다. 아래에 그 예를 보여줍니다.

# 'column1'의 값이 10보다 크고, 'column2'의 값이 5 이하인 행을 필터링
filtered_df = df[(df['column1'] > 10) & (df['column2'] <= 5)]

# 필터링된 데이터프레임 출력
print(filtered_df)

이 코드에서는 column1의 값이 10보다 크고, 또한 column2의 값이 5 이하인 행을 추출하고 있습니다.

문자열 데이터 필터링하기

문자열 데이터에 대해서도 필터링이 가능합니다. 아래에 그 예를 보여줍니다.

# 'column_name'이 특정 문자열과 일치하는 행을 필터링
filtered_df = df[df['column_name'] == 'specific_string']

# 필터링된 데이터프레임 출력
print(filtered_df)

이 코드에서는 column_namespecific_string과 일치하는 행을 추출하고 있습니다.

부분 일치를 통한 필터링

부분 일치를 사용한 필터링도 가능합니다. 예를 들어, 특정 문자열을 포함하는 행을 추출하는 경우는 아래와 같이 합니다.

# 'column_name'에 특정 문자열이 포함된 행을 필터링
filtered_df = df[df['column_name'].str.contains('substring')]

# 필터링된 데이터프레임 출력
print(filtered_df)

이 코드에서는 column_namesubstring이 포함된 행을 추출하고 있습니다.

이러한 필터링 방법을 사용하여 필요한 데이터를 효율적으로 추출할 수 있습니다. 다음은 CSV 파일의 데이터를 집계하는 방법에 대해 설명합니다.

CSV 파일의 데이터를 집계하기

데이터의 집계는 특정 조건에 따라 데이터를 모아 통계 정보를 얻는 데 매우 중요합니다. pandas를 사용하면 간단하게 데이터를 집계할 수 있습니다. 아래에 기본적인 집계 방법을 소개합니다.

데이터의 기본 통계량을 얻기

먼저, 데이터프레임 전체의 기본적인 통계 정보를 얻는 방법을 보여줍니다.

import pandas as pd

# CSV 파일 경로 지정
csv_file_path = 'data.csv'

# CSV 파일을 데이터프레임으로 읽어오기
df = pd.read_csv(csv_file_path)

# 기본 통계량 출력
print(df.describe())

이 코드에서는 describe 메서드를 사용하여 데이터프레임의 기본 통계량(평균, 표준편차, 최소값, 최대값 등)을 출력합니다.

특정 열에 대한 집계

특정 열에 대해 집계를 수행하려면 아래와 같이 합니다.

# 'column_name'의 합계를 계산
sum_value = df['column_name'].sum()
print(f"Sum of column_name: {sum_value}")

# 'column_name'의 평균을 계산
mean_value = df['column_name'].mean()
print(f"Mean of column_name: {mean_value}")

이 코드에서는 column_name 열의 합계와 평균을 계산하고 있습니다.

그룹별 집계

데이터를 특정 그룹으로 나누어 집계할 수도 있습니다. 아래에 그 예를 보여줍니다.

# 'group_column'으로 그룹화하고, 'value_column'의 평균을 계산
grouped_df = df.groupby('group_column')['value_column'].mean()
print(grouped_df)

이 코드에서는 group_column으로 데이터를 그룹화하고 각 그룹마다 value_column의 평균을 계산하고 있습니다.

피벗 테이블을 사용한 집계

더 복잡한 집계를 수행하려면 피벗 테이블을 사용할 수 있습니다.

# 피벗 테이블 생성
pivot_table = pd.pivot_table(df, values='value_column', index='index_column', columns='columns_column', aggfunc='sum')
print(pivot_table)

이 코드에서는 value_column의 값을 index_columncolumns_column의 조합으로 집계하여 피벗 테이블을 생성하고 있습니다.

이러한 집계 방법을 통해 CSV 파일의 데이터를 효율적으로 요약하고 인사이트를 얻을 수 있습니다. 다음은 CSV 파일의 데이터를 업데이트하는 방법에 대해 설명합니다.

CSV 파일의 데이터를 업데이트하기

기존 CSV 파일의 데이터를 업데이트하는 것은 데이터의 유지관리 및 수정에 있어 중요한 작업입니다. pandas를 사용하면 데이터프레임의 특정 값을 간단히 업데이트할 수 있습니다. 아래에 그 절차를 보여줍니다.

특정 값을 업데이트하기

데이터프레임의 특정 값을 업데이트하려면 조건을 지정하여 해당 값을 변경합니다.

import pandas as pd

# CSV 파일 경로 지정
csv_file_path = 'data.csv'

# CSV 파일을 데이터프레임으로 읽어오기
df = pd.read_csv(csv_file_path)

# 'column_name'의 값이 특정 조건을 만족하는 행의 'target_column'을 업데이트
df.loc[df['column_name'] == 'old_value', 'target_column'] = 'new_value'

# 업데이트된 데이터프레임 출력
print(df)

이 코드에서는 column_name의 값이 old_value와 일치하는 행의 target_column 값을 new_value로 업데이트하고 있습니다.

복수의 값을 일괄 업데이트하기

복수의 값을 일괄 업데이트하려면 아래와 같이 합니다.

# 조건에 따라 복수의 값을 일괄 업데이트
df.loc[df['column_name'] > 10, 'target_column'] = 'updated_value'

# 업데이트된 데이터프레임 출력
print(df)

이 코드에서는 column_name의 값이 10보다 큰 행의 target_column 값을 updated_value로 업데이트하고 있습니다.

데이터프레임 전체의 값을 업데이트하기

데이터프레임 전체의 특정 값을 일괄 업데이트하려면 아래와 같이 합니다.

# 데이터프레임 전체에서 특정 값을 새 값으로 대체
df.replace({'old_value': 'new_value'}, inplace=True)

# 업데이트된 데이터프레임 출력
print(df)

이 코드에서는 데이터프레임 전체에서 old_valuenew_value로 대체하고 있습니다.

업데이트한 데이터를 CSV 파일에 쓰기

업데이트가 완료된 데이터프레임을 CSV 파일에 쓰려면 to_csv 함수를 사용합니다.

# 업데이트된 데이터프레임을 CSV 파일에 쓰기
df.to_csv('updated_data.csv', index=False)

이 코드에서는 업데이트된 데이터프레임의 내용을 새로운 CSV 파일에 쓰고 있습니다. index=False를 지정하여 행 번호가 저장되지 않도록 합니다.

이러한 방법을 통해 기존 CSV 파일의 데이터를 효율적으로 업데이트할 수 있습니다. 다음은 CSV 파일에 새로운 데이터를 추가하는 방법에 대해 설명합니다.

CSV 파일에 새로운 데이터를 추가하기

기존 CSV 파일에 새로운 데이터를 추가하는 것은 데이터 확장 및 지속적인 데이터 기록에서 중요합니다. pandas를 사용하여 새로운 데이터를 간단히 기존 CSV 파일에 추가하는 방법을 소개합니다.

데이터프레임에 새로운 행을 추가하기

새로운 데이터를 데이터프레임에 추가하려면, append 메서드를 사용합니다.

import pandas as pd

# CSV 파일 경로를 지정
csv_file_path = 'data.csv'

# CSV 파일을 데이터프레임으로 읽어오기
df = pd.read_csv(csv_file_path)

# 새로운 데이터를 딕셔너리 형태로 정의
new_data = {'column1': 'value1', 'column2': 'value2', 'column3': 'value3'}

# 새로운 데이터를 데이터프레임에 추가
df = df.append(new_data, ignore_index=True)

# 업데이트된 데이터프레임 출력
print(df)

이 코드는 새로운 데이터를 딕셔너리 형태로 정의하고 데이터프레임에 추가합니다. ignore_index=True를 지정하면 인덱스가 리셋되어 새로운 행이 추가됩니다.

여러 개의 새로운 행 추가하기

여러 개의 새로운 데이터 행을 일괄적으로 추가하려면, 아래와 같이 수행합니다.

# 새로운 데이터를 리스트 형태로 정의
new_data_list = [
    {'column1': 'value1', 'column2': 'value2', 'column3': 'value3'},
    {'column1': 'value4', 'column2': 'value5', 'column3': 'value6'}
]

# 여러 개의 새로운 데이터를 데이터프레임에 추가
df = df.append(new_data_list, ignore_index=True)

# 업데이트된 데이터프레임 출력
print(df)

이 코드는 새로운 데이터를 리스트 형태로 정의하여 여러 행을 데이터프레임에 일괄적으로 추가합니다.

추가된 데이터를 CSV 파일에 저장하기

추가가 완료된 데이터프레임을 기존 CSV 파일에 저장하려면, to_csv 함수를 사용합니다.

# 추가된 데이터프레임을 CSV 파일에 저장
df.to_csv('data.csv', index=False)

이 코드는 데이터프레임의 내용을 CSV 파일에 덮어쓰기하여 저장합니다.

새로운 데이터를 기존 CSV 파일에 추가 저장하기

새로운 데이터를 기존 CSV 파일에 추가 저장할 수도 있습니다. 이 경우, mode='a' (추가 모드)를 사용합니다.

# 새로운 데이터프레임 생성
new_data_df = pd.DataFrame([{'column1': 'value1', 'column2': 'value2', 'column3': 'value3'}])

# 새로운 데이터를 기존 CSV 파일에 추가 저장
new_data_df.to_csv('data.csv', mode='a', header=False, index=False)

이 코드는 새로운 데이터프레임을 기존 CSV 파일에 추가 저장합니다. header=False를 지정하여 헤더 행이 다시 작성되지 않도록 합니다.

이러한 방법들을 사용하여 CSV 파일에 새로운 데이터를 효율적으로 추가할 수 있습니다. 다음으로, CSV 파일을 다른 형식으로 변환하는 방법에 대해 설명합니다.

CSV 파일을 다른 형식으로 변환하기

CSV 파일의 데이터를 다른 파일 형식으로 변환하면 다양한 애플리케이션 및 도구에서 데이터를 활용할 수 있습니다. pandas를 사용하여 CSV 파일을 Excel이나 JSON 등의 형식으로 변환하는 방법을 소개합니다.

CSV 파일을 Excel 파일로 변환하기

pandas를 사용하여 CSV 파일을 Excel 파일로 변환하려면, to_excel 메서드를 사용합니다.

import pandas as pd

# CSV 파일 경로를 지정
csv_file_path = 'data.csv'

# CSV 파일을 데이터프레임으로 읽어오기
df = pd.read_csv(csv_file_path)

# 데이터프레임을 Excel 파일로 저장
excel_file_path = 'data.xlsx'
df.to_excel(excel_file_path, index=False)

print(f"CSV 파일을 Excel 파일({excel_file_path})로 변환하였습니다.")

이 코드는 read_csv 메서드로 읽어온 데이터프레임을 to_excel 메서드를 사용하여 Excel 파일로 변환합니다.

CSV 파일을 JSON 파일로 변환하기

마찬가지로, CSV 파일을 JSON 파일로 변환하려면, to_json 메서드를 사용합니다.

# 데이터프레임을 JSON 파일로 저장
json_file_path = 'data.json'
df.to_json(json_file_path, orient='records', lines=True)

print(f"CSV 파일을 JSON 파일({json_file_path})로 변환하였습니다.")

이 코드는 to_json 메서드를 사용하여 데이터프레임을 JSON 파일로 변환합니다. orient='records'lines=True를 지정하여 각 행이 독립적인 JSON 객체로 저장되도록 설정합니다.

CSV 파일을 SQL 데이터베이스로 변환하기

CSV 파일의 데이터를 SQL 데이터베이스에 임포트하려면, SQLAlchemy를 사용합니다.

from sqlalchemy import create_engine

# 데이터베이스 연결 엔진 생성
engine = create_engine('sqlite:///data.db')

# 데이터프레임을 SQL 데이터베이스에 저장
df.to_sql('table_name', engine, if_exists='replace', index=False)

print("CSV 파일을 SQL 데이터베이스로 변환하였습니다.")

이 코드는 SQLite 데이터베이스를 사용하여 데이터프레임을 SQL 데이터베이스로 변환합니다. if_exists='replace'를 지정하여 기존 테이블을 교체합니다.

CSV 파일을 HTML 파일로 변환하기

CSV 파일의 데이터를 HTML 테이블로 저장하려면, to_html 메서드를 사용합니다.

# 데이터프레임을 HTML 파일로 저장
html_file_path = 'data.html'
df.to_html(html_file_path, index=False)

print(f"CSV 파일을 HTML 파일({html_file_path})로 변환하였습니다.")

이 코드는 to_html 메서드를 사용하여 데이터프레임을 HTML 파일로 변환합니다.

이러한 방법들을 사용하여 CSV 파일의 데이터를 필요한 형식으로 쉽게 변환할 수 있습니다. 다음으로, 대규모 CSV 파일의 효율적인 처리 방법에 대해 설명합니다.

에러 핸들링과 데이터 검증

CSV 파일을 다룰 때는 데이터 품질을 유지하기 위해 에러 핸들링과 데이터 검증이 중요합니다. pandas를 사용하여 데이터를 검증하고 에러를 처리하는 방법을 소개합니다.

데이터 검증

데이터 검증은 데이터의 일관성과 정확성을 확인하기 위해 수행합니다. 아래에 일반적인 데이터 검증 방법을 제시합니다.

결측값 탐지

데이터프레임 내 결측값을 탐지하는 방법을 소개합니다.

import pandas as pd

# CSV 파일 경로 지정
csv_file_path = 'data.csv'

# CSV 파일을 데이터프레임으로 읽기
df = pd.read_csv(csv_file_path)

# 결측값 탐지
missing_values = df.isnull().sum()
print("결측값 개수:\n", missing_values)

이 코드는 isnull 메서드를 사용하여 결측값을 탐지하고 그 개수를 표시합니다.

중복 데이터 탐지

데이터프레임 내 중복 행을 탐지하는 방법을 소개합니다.

# 중복 행 탐지
duplicate_rows = df.duplicated().sum()
print("중복 행 개수:", duplicate_rows)

이 코드는 duplicated 메서드를 사용하여 중복 행을 탐지하고 그 개수를 표시합니다.

특정 조건을 충족하는 데이터 탐지

데이터가 특정 조건을 충족하는지 검증합니다.

# 'column_name' 값이 음수인 행 탐지
invalid_data = df[df['column_name'] < 0]
print("유효하지 않은 데이터:\n", invalid_data)

이 코드는 column_name의 값이 음수인 행을 탐지합니다.

에러 핸들링

CSV 파일 처리 중 발생하는 에러를 적절히 처리하는 방법을 소개합니다.

읽기 시 에러 핸들링

CSV 파일 읽기 시 에러가 발생했을 때의 대처 방법을 제시합니다.

try:
    df = pd.read_csv(csv_file_path)
except FileNotFoundError:
    print(f"파일을 찾을 수 없습니다: {csv_file_path}")
except pd.errors.EmptyDataError:
    print("파일이 비어 있습니다")
except pd.errors.ParserError:
    print("파일 구문 분석 중 에러가 발생했습니다")

이 코드는 try-except 블록을 사용하여 CSV 파일 읽기 중 발생할 수 있는 에러를 처리합니다.

데이터 변환 시 에러 핸들링

데이터 타입 변환 시 에러가 발생했을 때의 대처 방법을 제시합니다.

# 'column_name'을 숫자로 변환할 때의 에러 핸들링
df['column_name'] = pd.to_numeric(df['column_name'], errors='coerce')
print("변환 후 데이터:\n", df)

이 코드는 to_numeric 메서드를 사용하여 데이터를 숫자로 변환하며, 변환할 수 없는 값은 NaN으로 대체합니다.

에러 로깅

에러가 발생했을 경우, 그 상세 내용을 로그에 기록하는 방법을 제시합니다.

import logging

# 로그 설정
logging.basicConfig(filename='errors.log', level=logging.ERROR)

# 에러를 로그에 기록하는 예제
try:
    df = pd.read_csv(csv_file_path)
except Exception as e:
    logging.error("에러가 발생했습니다", exc_info=True)

이 코드는 logging 모듈을 사용하여 에러를 로그 파일에 기록합니다.

이러한 방법을 사용하면 CSV 파일 처리 중 발생하는 에러를 적절히 처리하고 데이터 품질을 유지할 수 있습니다. 다음은 응용 예제로서 CSV 파일을 사용한 데이터 분석에 대해 설명합니다.

응용 예제: CSV 파일을 사용한 데이터 분석

CSV 파일을 사용하여 데이터 분석을 수행함으로써 데이터에서 유용한 인사이트를 얻을 수 있습니다. pandas를 활용하여 기본적인 데이터 분석 방법을 소개합니다.

데이터 읽기 및 전처리

먼저 CSV 파일을 읽고 데이터의 전처리를 수행합니다.

import pandas as pd

# CSV 파일 경로 지정
csv_file_path = 'data.csv'

# CSV 파일을 데이터프레임으로 읽기
df = pd.read_csv(csv_file_path)

# 데이터 기본 정보 표시
print(df.info())

# 결측값 확인
print("결측값 개수:\n", df.isnull().sum())

# 결측값 처리 (예: 결측값을 0으로 채우기)
df.fillna(0, inplace=True)

이 코드는 데이터 기본 정보를 표시하고 결측값을 0으로 채우는 전처리를 수행합니다.

기본 통계량 계산

데이터의 기본 통계량을 계산합니다.

# 기본 통계량 표시
print(df.describe())

이 코드는 describe 메서드를 사용하여 데이터프레임의 기본 통계량을 표시합니다.

데이터 시각화

데이터 시각화를 통해 데이터의 경향과 패턴을 시각적으로 파악할 수 있습니다. 여기에서는 matplotlib를 사용하여 기본적인 그래프를 작성합니다.

import matplotlib.pyplot as plt

# 'column1'의 히스토그램 생성
df['column1'].hist()
plt.title('Histogram of Column 1')
plt.xlabel('Values')
plt.ylabel('Frequency')
plt.show()

# 'column1'과 'column2'의 산점도 생성
df.plot.scatter(x='column1', y='column2')
plt.title('Scatter Plot of Column 1 vs Column 2')
plt.xlabel('Column 1')
plt.ylabel('Column 2')
plt.show()

이 코드는 히스토그램과 산점도를 생성하여 데이터의 분포와 상관관계를 시각적으로 확인합니다.

그룹화 및 집계

데이터를 그룹화하여 집계를 수행하고 특정 조건에 따른 집계 결과를 얻는 방법을 소개합니다.

# 'category_column'으로 그룹화하고 'value_column'의 합계 계산
grouped_df = df.groupby('category_column')['value_column'].sum()
print(grouped_df)

# 그룹화된 데이터를 막대 그래프로 시각화
grouped_df.plot(kind='bar')
plt.title('Total Value by Category')
plt.xlabel('Category')
plt.ylabel('Total Value')
plt.show()

이 코드는 데이터를 카테고리별로 그룹화하여 각 카테고리의 총합을 계산하고 막대 그래프로 시각화합니다.

시계열 데이터 분석

시계열 데이터를 다룰 때의 분석 방법을 소개합니다.

# 날짜 열을 Datetime 형식으로 변환
df['date_column'] = pd.to_datetime(df['date_column'])

# 날짜를 인덱스로 설정
df.set_index('date_column', inplace=True)

# 일별 데이터를 월별로 리샘플링하여 평균 계산
monthly_avg = df.resample('M').mean()
print(monthly_avg)

# 월별 평균을 선 그래프로 시각화
monthly_avg.plot()
plt.title('Monthly Average of Values')
plt.xlabel('Month')
plt.ylabel('Average Value')
plt.show()

이 코드는 일별 데이터를 월별로 리샘플링하여 평균을 계산하고 선 그래프로 시각화합니다.

머신러닝 모델 구축

마지막으로, CSV 데이터를 사용하여 간단한 머신러닝 모델을 구축하는 방법을 소개합니다.

from sklearn.model_selection import train_test_split
from sklearn.linear_model import LinearRegression
from sklearn.metrics import mean_squared_error

# 특성 및 타겟 변수 설정
X = df[['feature1', 'feature2']]
y = df['target']

# 데이터를 학습 세트와 테스트 세트로 분할
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)

# 선형 회귀 모델 생성
model = LinearRegression()
model.fit(X_train, y_train)

# 테스트 세트로 예측 수행
y_pred = model.predict(X_test)

# 모델 평가
mse = mean_squared_error(y_test, y_pred)
print(f'Mean Squared Error: {mse}')

이 코드는 선형 회귀 모델을 생성하고 학습 데이터로 학습시킨 후, 테스트 데이터로 예측을 수행하며 모델의 성능을 평가합니다.

이러한 방법들을 통해 CSV 파일 데이터를 효과적으로 분석하고, 가치 있는 인사이트를 얻을 수 있습니다. 다음은 학습한 내용을 실천하기 위한 연습 문제를 제공합니다.

목차