2025 내일배움캠프 QAQC_2기

2025 내일배움캠프 QAQC_2기 본캠프 11일차

mingdoremi 2025. 5. 26. 19:38

안녕하세요!! 오늘은 본캠프 11일차입니다!

오늘은 데이터 분석 파이썬 강의 5주차를 들었습니다!

 

01. 파일 불러오기 및 저장하기

1) 파일 확장자

  • CSV 파일 (.csv)
    • CSV 파일은 Comma Separated Values의 약자로, 데이터를 쉼표(,)로 구분하여 저장하는 형식입니다.
  • Excel 파일 (.xls, .xlsx)
    • Excel 파일은 표 형태로 데이터를 저장하는 Microsoft Excel의 형식입니다.
  • JSON 파일 (.json)
    • JSON 파일은 JavaScript Object Notation의 약자로, 데이터를 저장하는 간단한 형식입니다.
  • 텍스트 파일 (.txt, .dat, 등)
    • 텍스트 파일은 일반 텍스트로 된 데이터를 저장하는 파일입니다.

2) 확장자에 따른 파일 불러오는 함수

  • CSV 파일 (.csv)
    • 데이터프레임으로 불러오기: pandas 라이브러리의 read_csv() 함수를 사용합니다.
    • ex) import pandas as pd
      df = pd.read_csv('file.csv')
  • Excel 파일 (.xls, .xlsx)
    • 데이터프레임으로 불러오기: **pandas**의 read_excel() 함수를 사용합니다.
    • ex) import pandas as pd
      df = pd.read_excel('file.xlsx')
  • JSON 파일 (.json)
    • 데이터프레임으로 불러오기: **pandas**의 read_json() 함수를 사용합니다.
    • ex) import pandas as pd
      df = pd.read_json('file.json')
  • 텍스트 파일 (.txt, .dat, 등)
    • 데이터프레임으로 불러오기: **pandas**의 read_csv() 함수를 사용할 수 있습니다.
    • ex) import pandas as pd
      df = pd.read_csv('file.txt', delimiter='\t')  # 만약 탭으로 구분되어 있다면 delimiter='\t'를 사용합니다.

02. 패키지(라이브러리) 사용하기

1) 패키지란?

  • 패키지는 관련된 여러 개의 모듈을 포함하는 디렉토리입니다.
  • 패키지 안에는 일반적으로 라이브러리나 다른 패키지가 포함될 수 있습니다.
  • 예를 들어, **numpy**와 **matplotlib**는 여러 모듈을 포함하는 패키지입니다.
  • ex) 
    import pandas as pd
    import numpy as np
    import tensorflow as tf
    import matplotlib.pyplot as plt
    import seaborn

2) 다양한 종류의 패키지

  • pandas
    • 데이터 조작과 분석을 위한 라이브러리로, 데이터를 효과적으로 조작하고 분석할 수 있도록 도와줍니다.
  • numpy
    • 과학적 계산을 위한 핵심 라이브러리로, 다차원 배열과 행렬 연산을 지원합니다.
  • matplotlib
    • 데이터 시각화를 위한 라이브러리로, 다양한 그래프와 플롯을 생성할 수 있습니다.
  • seaborn
    • Matplotlib을 기반으로 한 통계용 데이터 시각화 라이브러리로, 보다 간편하고 아름다운 시각화를 제공합니다.
  • scikit-learn
    • 머신 러닝 알고리즘을 사용할 수 있는 라이브러리로, 분류, 회귀, 군집화, 차원 축소 등 다양한 머신 러닝 기법을 제공합니다.
  • statsmodels
    • 통계 분석을 위한 라이브러리로, 회귀 분석, 시계열 분석, 비모수 통계 등 다양한 통계 기법을 제공합니다.
  • scipy
    • 과학기술 및 수학적인 연산을 위한 라이브러리로, 다양한 과학 및 공학 분야에서 활용됩니다. 선형대수, 최적화, 신호 처리, 통계 분석 등 다양한 기능을 제공합니다.
  • tensorflow
    • 딥러닝 및 기계 학습을 위한 오픈소스 라이브러리로, 구글에서 개발했습니다. 그래프 기반의 계산을 통해 수치 계산을 수행하며, 신경망을 구축하고 학습할 수 있습니다.
  • pytorch
    • 딥러닝을 위한 오픈소스 라이브러리로, Facebook에서 개발했습니다. 동적 계산 그래프를 사용하여 신경망을 구축하고 학습할 수 있습니다.

03. 포맷팅(formatting) 사용하기

1) 포맷팅이란?

x = 10
print(f"변수 x의 값은 {x}입니다.")

 

04. 리스트 캄프리헨션

1) 리스트 캄프리헨션이란?

  • 리스트 캄프리헨션은 파이썬에서 리스트를 간결하게 생성하는 방법 중 하나입니다.
  • 보통 반복문과 조건문을 사용하여 리스트를 생성할 때 사용됩니다.
  • 이는 코드를 더 간결하고 가독성 있게 만들어 줍니다.
  • 리스트 캄프리헨션은 파이썬의 강력한 기능 중 하나로, 데이터 처리 및 변환에 유용하게 활용됩니다.
  • 기본적인 구조
    [표현식 for 항목 in iterable if 조건문]

05. lambda 사용하기

1) lambda(람다)란?

  • 람다 함수(lambda function)는 익명 함수로, 이름 없이 정의되는 간단한 함수입니다.
  • 주로 한 줄로 표현되며, 일반적인 함수 정의와는 달리 def 키워드를 사용하지 않고 lambda 키워드를 사용하여 정의됩니다.
  • 람다 함수는 주로 함수를 매개변수로 전달하는 함수형 프로그래밍에서 유용하게 활용됩니다.

2) lambda와 함수의 차이점

  • 정의 방식
    • 일반 함수는 def 키워드를 사용하여 명시적으로 함수를 정의합니다.
    • 람다 함수는 lambda 키워드를 사용하여 익명 함수를 간단히 정의합니다.
  • 구조
    • 일반 함수는 여러 줄의 코드 블록을 가질 수 있습니다.
    • 람다 함수는 주로 한 줄로 표현되는 간단한 표현식만을 포함합니다.
  • 이름
    • 일반 함수는 함수의 이름을 지정하여 호출할 수 있습니다.
    • 람다 함수는 이름이 없기 때문에 한 번만 사용되거나 임시로 필요한 경우에 사용됩니다.
  • 사용
    • 일반 함수는 어떤 경우에도 사용할 수 있습니다.
    • 람다 함수는 주로 함수를 매개변수로 받거나 함수를 반환하는 고차 함수, 즉 함수형 프로그래밍에서 사용됩니다.

3) lambda를 쓰는 이유

  • 간결성
    • 람다 함수는 코드를 더 간결하게 만들어 줍니다. 특히 간단한 연산이나 조작이 필요한 경우에 유용합니다.
  • 익명성
    • 이름이 없기 때문에 임시로 필요한 경우에 사용할 수 있습니다. 예를 들어, 정렬이나 필터링과 같은 함수의 매개변수로 전달할 때 많이 사용됩니다.
  • 함수형 프로그래밍
    • 함수를 값으로 취급하고 함수를 다루는 함수형 프로그래밍 패러다임에서 람다 함수가 필요합니다. 이러한 경우에는 함수를 매개변수로 받는 고차 함수를 작성하거나 함수를 반환하는 경우에 람다 함수가 효과적으로 사용됩니다.
  • 가독성
    • 람다 함수는 간단한 표현식을 사용하여 코드를 작성하므로 가독성이 향상될 수 있습니다. 특히 함수가 짧고 명확한 경우에 유용합니다.
  • 그러나 람다 함수는 모든 상황에 적합하지는 않습니다.
  • 복잡한 기능을 가진 함수나 여러 줄의 코드가 필요한 경우에는 일반 함수를 사용하는 것이 좋습니다.

06. glob 사용하기

1) glob란?

  • glob 함수는 파일 시스템에서 파일을 찾을 때 사용되는 유용한 도구입니다.
  • 이 함수는 파일 이름의 패턴 매칭을 통해 파일을 검색하고, 일치하는 파일들의 리스트를 반환합니다.
  • 주로 파일 이름이나 확장자에 따라 파일을 필터링하는 데 사용됩니다.

07. os 사용하기

1) os란?

  • os 모듈은 운영 체제와 상호 작용하기 위한 다양한 함수들을 제공합니다.
  • 이 모듈은 파일 시스템을 관리하고, 디렉토리를 탐색하고, 파일을 조작하는 데 사용됩니다.
  • 주요 기능
    • 파일 및 디렉토리 관리:
      • 파일 생성, 이름 변경, 삭제 등의 작업을 수행할 수 있습니다.
      • 디렉토리 생성, 탐색, 삭제 등의 작업을 수행할 수 있습니다.
    • 경로 관리:
      • 절대 경로, 상대 경로, 현재 작업 디렉토리 등의 경로를 관리할 수 있습니다.
      • 경로 구성 요소를 조작하고, 경로를 연결하고, 경로를 정규화할 수 있습니다.
    • 환경 변수 관리:
      • 시스템의 환경 변수를 가져오거나 설정할 수 있습니다.
    • 실행 관리:
      • 외부 프로그램을 실행하거나, 현재 프로세스의 종료 등의 작업을 수행할 수 있습니다.

08. split 사용하기

split란?

  • 리스트의 split 메서드를 활용하면 문자열을 여러개로 쪼개는데 유용해요.
  • 이러한 메서드를 알고 있으면 문자열로 되어 있는 파일 경로로 부터 파일 제목을 추출하는 등의 상황에서 아주 유용하게 사용할 수 있습니다!

09. 클래스 배우기

1) 클래스란?

  • 파이썬 클래스(Class)는 객체 지향 프로그래밍(OOP)의 중요한 개념 중 하나입니다.
  • 객체 지향 프로그래밍은 현실 세계의 사물을 모델링하여 프로그래밍하는 방법으로, 이를 통해 코드의 재사용성과 유지보수성을 향상시킬 수 있습니다.

2) 클래스와 함수의 차이점

  • 클래스와 함수는 모두 파이썬에서 코드를 조직화하고 재사용성을 높이는 데 사용됩니다.
  • 그러나 클래스와 함수는 목적과 사용 방법에서 차이가 있습니다.
  • 함수(Function)
    • 함수는 일련의 작업을 수행하는 블록입니다.
    • 함수는 일반적으로 입력(매개변수)을 받아들이고 그에 따른 결과를 반환합니다.
    • 함수는 특정한 작업을 수행하는 독립적인 코드 블록으로, 재사용성을 높이고 코드의 가독성을 개선합니다.
    • 함수는 클래스와 상관없이 독립적으로 정의될 수 있습니다.
  • 클래스(Class)
    • 클래스는 데이터와 해당 데이터를 처리하는 메서드(함수)를 함께 묶어놓은 것입니다.
    • 클래스는 객체 지향 프로그래밍의 핵심 개념으로, 데이터와 데이터를 다루는 코드를 함께 묶어 객체를 생성할 수 있게 합니다.
    • 클래스는 객체의 상태(속성)와 행위(메서드)를 정의하고 이를 캡슐화하여 객체를 생성하고 다룰 수 있게 합니다.
    • 클래스는 상속을 통해 기존 클래스를 확장하고 다형성을 지원하여 유연한 코드 구조를 구현할 수 있습니다.
    • 클래스는 여러 객체를 생성하고 관리함으로써 코드의 구조를 향상시키고 재사용성을 높입니다.
    • 왜 클래스를 사용해야 하는가?
      • 코드의 구조화: 클래스를 사용하면 관련 있는 데이터와 동작을 묶어서 구조화할 수 있습니다. 이는 코드의 가독성을 높이고 유지보수를 용이하게 합니다.
      • 재사용성: 클래스는 객체 지향 프로그래밍의 핵심이며, 이를 통해 코드를 재사용할 수 있습니다. 클래스를 사용하면 비슷한 동작을 하는 여러 객체를 생성할 수 있습니다.
      • 상속과 다형성: 클래스는 상속을 통해 기존 클래스를 확장하고 다형성을 지원하여 유연하고 확장 가능한 코드를 작성할 수 있습니다.
      • 캡슐화: 클래스는 데이터와 해당 데이터를 처리하는 코드를 함께 묶어 캡슐화합니다. 이는 데이터의 무결성을 보장하고 외부로부터의 접근을 제어할 수 있게 합니다.
      • 객체 지향 설계: 객체 지향 프로그래밍은 현실 세계의 개념을 모델링하여 프로그래밍하는 방법입니다. 클래스를 사용하면 현실 세계의 개념을 코드로 옮겨 쉽게 이해하고 관리할 수 있습니다.
    • 따라서 데이터 분석과 같이 복잡한 작업을 수행하는 경우 클래스를 사용하여 코드를 구조화하고 객체 지향적으로 설계하는 것이 좋습니다.
    • 클래스를 사용하면 유연하고 확장 가능한 코드를 작성할 수 있으며, 이는 데이터 분석 작업의 효율성과 유지보수성을 향상시킵니다.

10. 불리언 인덱싱

불리언 인덱싱이란?

  • 불리언 인덱싱(Boolean indexing)은 조건에 따라 요소를 선택하는 방법 중 하나입니다.
  • 이것은 주어진 조건에 따라 배열이나 리스트에서 요소를 선택할 수 있게 해주는 강력한 도구입니다.
  • 파이썬에서는 NumPy를 사용하여 불리언 인덱싱을 수행할 수 있고 Pandas에서 데이터를 조건에 맞게 선택할 때 많이 사용합니다.
  • 불리언 인덱싱은 데이터 필터링 및 선택에 매우 유용하며, 데이터 분석에서 자주 사용됩니다.

11. 데코레이션 사용하기

1) 데코레이션이란?

  • 데코레이터(Decorator)는 파이썬에서 함수나 메서드의 기능을 확장하거나 수정하는 강력한 도구입니다.
  • 데코레이터는 함수나 메서드를 인자로 받아 해당 함수나 메서드를 변경하거나 래핑하는 함수입니다. 이를 통해 코드를 더 간결하고 재사용 가능하게 만들 수 있습니다.
  • 즉, 기존의 함수를 따로 수정하지 않고도 추가 기능을 넣고 싶을 때 사용합니다.
  • 데코레이션은 따로 함수 내부의 구조를 바꾸지 않고 함수 외부에 간단한 명령어를 작성하여 작동이 되기 때문입니다.
  • 구조
  • def decorator_function(original_function):

    def wrapper_function(**kwargs):
        # 함수 호출 전에 실행되는 코드
        result = original_function(**kwargs)
        # 함수 호출 후에 실행되는 코드
        return result
    return wrapper_function

 

12. 파이썬 에러 대처법

1) 파이썬 에러 확인하는 법

파이썬 에러의 예시

Traceback (most recent call last):
    File "codeit.py", line 12, in <module> # 어떤 파일에서 몇번째 줄에 에러가 떴는지를 알려줌
    numbers[right] = temp[left] # 어떤 코드가 잘못 되었는지를 알려줌
TypeError: 'int' object is not subscriptable  # 에러의 종류 : 에러에 대한 세부 정보

2) 대표적인 에러들

1. SyntaxError (구문 오류):

  • 에러 메시지: 코드 문법에 오류가 있음을 나타냅니다.
  • 대처법: 코드의 문법을 확인하고 괄호, 따옴표, 콜론 등을 올바르게 사용했는지 확인하세요. 코드 블록의 들여쓰기도 확인해야 합니다.
  • SyntaxError: EOL while scanning string literal

2. IndentationError (들여쓰기 오류):

  • 에러 메시지: 코드 블록의 들여쓰기가 잘못되었음을 나타냅니다.
  • 대처법: 들여쓰기를 일관되게 맞추세요. 보통 스페이스 4개 또는 탭을 사용합니다.
  • IndentationError: expected an indented block

3. NameError (이름 오류):

  • 에러 메시지: 정의되지 않은 변수나 함수를 사용하려고 할 때 발생합니다.
  • 대처법: 사용된 변수나 함수가 정의되었는지 확인하세요. 오탈자나 변수명의 대소문자를 확인하고, 정의되지 않은 변수나 함수를 정의하세요.
  • NameError: name 'my_variable' is not defined

4. TypeError (타입 오류):

  • 에러 메시지: 데이터 타입이 일치하지 않는 연산이나 함수 호출을 시도할 때 발생합니다.
  • 대처법: 연산이나 함수 호출에서 사용되는 데이터 타입을 확인하고, 필요한 형 변환을 수행하세요. 예를 들어, 문자열과 숫자를 연산할 때는 문자열을 숫자로 변환해야 합니다.
  • TypeError: can only concatenate str (not "int") to str

5. IndexError (인덱스 오류):

  • 에러 메시지: 리스트나 튜플에서 존재하지 않는 인덱스를 접근하려고 할 때 발생합니다.
  • 대처법: 인덱스 범위를 확인하고, 존재하지 않는 인덱스에 접근하는 것을 피하세요. 리스트 슬라이싱을 사용하여 안전하게 데이터에 접근할 수도 있습니다.
  • IndexError: list index out of range

6. KeyError (키 오류):

  • 에러 메시지: 딕셔너리에서 존재하지 않는 키를 사용하려고 할 때 발생합니다.
  • 대처법: 사용되는 키가 딕셔너리에 존재하는지 확인하세요. 딕셔너리에 존재하지 않는 키를 사용하지 않도록 주의하세요.
  • KeyError: 'c'

7. FileNotFoundError (파일을 찾을 수 없음 오류):

  • 에러 메시지: 파일을 찾을 수 없을 때 발생합니다.
  • 대처법: 파일 경로를 올바르게 지정했는지 확인하세요. 파일이 존재하는지, 경로가 정확한지 확인하세요.

 

오늘은 정강민 튜터님의 세션도 있었고, 내일 내야하는 개인과제를 푸느라 거의 시간을 다 썼어요.. ㅜ.ㅜ

왤캐 어려운 거죠 ㅜ.ㅜ 풀이를 보면 해석은 가능한데 문제를 보고 바로 코드가 떠오르진 않아요..

계속 연습해야겠죵 ㅎ.ㅎ

오늘도 내일도 모레도 파이팅입니다!!!!!!!!!!

 

수고하셨습니다~!~!