25.05.19 코딩 공부 시작

코딩 척척석박사 분들 피드백 환영합니다.

공대생이 코딩에서 살아남기

강의자료/데이터 분석 파이썬 종합반

5강. (05.29,05.30)

코딩 아가 2025. 5. 30. 16:38

목표: 다양한 유용한 문법들을 숙지하고 적재적소에 사용할 수 있다!!

중요: os, 패키지, 람다, 리스트 캄프리헨션

구글 드라이브 마운트

from google.colab import drive
drive.mount('/content/drive')

파일 불러오기

#excel
root = "/content/drive/MyDrive/Colab Notebooks/파이썬 종합반"
file_address=root + "/ssec2403(통계표).xlsx"
import pandas as pd
df = pd.read_excel(file_address)
 
#csv
import pandas as pd
df = pd.read_csv('/content/sample_data/data.csv')
#excel
import pandas as pd
df = pd.read_excel('/content/sample_data/data.xlsx')
#json
import pandas as pd
df = pd.read_json('/content/sample_data/data.json')
#txt
import pandas as pd
df = pd.read_csv('/content/sample_data/data.txt')

파일 저장할 때 경로 부분만 잘 확인하고 사용하기

data = {
    'Name': ['John', 'Emily', 'Michael'],
    'Age': [30, 25, 35],
    'City': ['New York', 'Los Angeles', 'Chicago']
}

1. csv

import pandas as pd
#data정보
df = pd.DataFrame(data)
excel_file_path = '/content/sample_data/data.csv'
df.to_csv(excel_file_path, index = False)
#index:숫자를 적는부분(대부분 안적는다=False)

2. excel

import pandas as pd
#data정보
df = pd.DataFrame(data)
excel_file_path = '/content/sample_data/data.xlsx'
df.to_excel(excel_file_path, index = False)

3. json

import json
#data정보
json_file_path = '/content/sample_data/data.json'
# with: 먼저 쓰기모드로 열어서 data를 거기에 덮어씌우고 자동으로 닫아줌
with open(json_file_path, 'w') as jsonfile:
    json.dump(data, jsonfile, indent=4)

4. 텍스트 파일

text_file_path = '/content/sample_data/data.txt'
# key와 item 지
with open(text_file_path, 'w') as textfile:
    for key, item in data.items():
        textfile.write(str(key) + " : " + str(item) + '\n') #":": 생략가능, "\": 띄어쓰기

패키지란?(라이브러리)

  • 관련된 여러 개의 모듈을 포함하는 디렉토리
  • 코드의 재사용성을 높이고, 개발 속도를 빠르게 하며, 코드의 가독성 향상
import pandas as pd
import numpy as np
import tensorflow as tf
import matplotlib.pyplot as plt
import seaborn

1. pandas(pd): 데이터를 효과적으로 조작 및 분석 라이브러리

2. numpy(np): 과학적 계산 라이브러리, 다차원 배열과 행렬 연산을 지원

3. matplotlib.pyplot(plt): 데이터 시각화 라이브러리, 다양한 그래프와 플롯을 생성 가능

4. seaborn(sns): 간편 및 아름다운 시각화 라이브러리

5. scikit-learn: 머신 러닝 알고리즘(분류/회귀/군집화/차원 축소 등)을 사용 가능한 라이브러리

6. statsmodels: 통계 분석(회귀 분석/시계열 분석/비모수 통계 등)을 위한 라이브러리

7. scipy: 과학기술 및 수학적인 연산을 위한 라이브러리, 다양한 과학 및 공학 분야(선형대수/최적화/신호 처리/통계 분석 등)

8. tensorflow(tf): 러닝 및 기계 학습을 위한 오픈소스 라이브러리(구글), 그래프 기반의 계산을 통해 수치 계산을 수행하며, 신경망을 구축하고 학습 가능

9. pytorch: 딥러닝을 위한 오픈소스 라이브러리(Facebook), 동적 계산 그래프를 사용하여 신경망을 구축하고 학습 가능

포맷팅이란?(formatting)

  • {변수}와 문자를 콤마(,) 없이  출력가능
#f-string 방법
x = 10
print(f"변수 x의 값은 {x}입니다.")
#다른 방법
x = 10
print("변수 x의 값은 {}입니다.".format(x))

리스트 캄프리헨션

  • 간결하고 가독성 좋은 코드 생성
  • [표현식 for 항목 in iterable if 조건문]

람다 함수(lambda function)

  • lambda 키워드를 사용하여 익명 함수를 간단히 정의
  • 주로 한 줄로 표현
  • 주로 함수를 매개변수로 받거나 함수를 반환하는 고차 함수, 즉 함수형 프로그래밍에서 사용
  • 간결성
  • 익명성
  • 함수형 프로그래밍
  • 가독성
numbers = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
even_numbers = list(filter(lambda x: x % 2 == 0, numbers))
print(even_numbers)  
#출력: [2, 4, 6, 8, 10]

glob

  • 파일 시스템에서 파일을 찾을 때 사용되는 유용한 도구
  • 파일 이름의 패턴 매칭을 통해 파일을 검색하고, 일치하는 파일들의 리스트를 반환
import glob

# 현재 경로의 모든 파일을 찾기
file_list1 = glob.glob('*')

os

  • 운영 체제와 상호 작용하기 위한 다양한 함수들을 제공
  • 파일 및 디렉토리 관리(생성, 삭제)
  • 경로 관리(이어줄때)
  • 환경 변수 관리
  • 실행 관리

split

  • 문자열을 여러개로 나누기
  • 문자열로 되어 있는 파일 경로로 부터 파일 제목을 추출

클래스

  • 객체 지향 프로그래밍(OOP)
  • 현실 세계의 사물을 모델링하여 프로그래밍하는 방법(코드의 재사용성과 유지보수성을 향상)
  • 세부적 기능을 함수기능으로 넣어 쉽게 호출
  • __init__ 메서드: 클래스의 생성자, 객체가 생성될 때 호출(초기화 작업)
  • 클래스 내부의 메서드: 클래스의 동작을 정의하는 함수
  • 메서드의 첫 번째 매개변수: self를 반드시 사용
class ClassName:
    def __init__(self, 변수1, 변수2):
        self.변수1 = 변수1
        self.변수2 = 변수2
    def __str__(self):
        return f"이름: {self.변수1}, 나이: {self.변수2}"
 
# 객체 생성
변수1 = ClassName("Alice", 30)
변수2 = ClassName("Bob", 25)

불리언 인덱싱

  • 주어진 조건에 따라 배열이나 리스트에서 요소를 선택
  • 파이썬=NumPy, Pandas=데이터를 조건에 맞게 선택
import numpy as np

# 배열 생성
arr = np.array([1, 2, 3, 4, 5])
# 불리언 배열 생성 (조건에 따라 True 또는 False 값을 갖는 배열)
condition = np.array([True, False, True, False, True])

# 불리언 인덱싱을 사용하여 조건에 맞는 요소 선택
result = arr[condition]
print("Result using boolean indexing:", result)  # 출력: Result using boolean indexting: [1 3 5]

# 불리언 인덱싱을 사용하여 배열에서 짝수인 요소만 선택 
evens = arr[arr % 2 == 0]
print("Even numbers using boolean indexing:", evens)  # 출력: Even numbers using boolean indexing: [2 4]

데코레이션

  • 데코레이터(Decorator): 파이썬에서 함수나 메서드의 기능을 확장 및 수정
  • 기존의 함수를 따로 수정하지 않고도 추가 기능을 넣고 싶을 때
  • 함수 외부에 간단한 명령어를 작성
def my_decorator(func):
    def wrapper():
        print("함수 호출 전에 실행되는 코드")
        func()
        print("함수 호출 후에 실행되는 코드")
    return wrapper

@my_decorator #위의 두 함수 사이에 들어갈 함수 정의
def say_hello():
    print("Hello!")

say_hello()
 
#Something is happening before the function is called.
#Hello!
#Something is happening after the function is called.

파이썬 에러 대처법

1. SyntaxError (구문 오류)

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

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

  • 에러 메시지: 코드 블록의 들여쓰기 오류
  • 대처법: 들여쓰기를 일관시키기(스페이스 4개 or 탭)

3. NameError (이름 오류):

  • 에러 메시지: 정의되지 않은 변수나 함수를 사용 오류
  • 대처법: 정의되지 않은 변수나 함수를 정의, 오탈자나 변수명의 대소문자 확인

4. TypeError (타입 오류):

  • 에러 메시지: 데이터 타입이 일치하지 않는 연산이나 함수 호출 오류
  • 대처법: 연산이나 함수 호출 데이터 타입 확인, 필요한 형 변환

5. IndexError (인덱스 오류):

  • 에러 메시지: 리스트나 튜플에서 존재하지 않는 인덱스 접근 오류
  • 대처법: 인덱스 범위를 확인, 리스트 슬라이싱을 사용

6. KeyError (키 오류):

  • 에러 메시지: 딕셔너리에서 존재하지 않는 키 사용 오류
  • 대처법: 키 존재 확인

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

  • 에러 메시지: 파일 오류
  • 대처법: 파일 경로를 올바르게 지정

 

'강의자료 > 데이터 분석 파이썬 종합반' 카테고리의 다른 글

4강. (05.28,05.29)  (0) 2025.05.29
3강. (05.26)  (3) 2025.05.26
2강. (05.23,05.26)  (0) 2025.05.26
1강. (05.23)  (0) 2025.05.23