QCQA_1기

TIL_2W4D_데이터 분석 파이썬 종합반 5주차(알면 유용한 파이썬 문법들!)

story3395 2024. 12. 27. 15:12

 

[드라이브 마운트]

:컴퓨터에서 외부 저장 장치를 시스템에 연결하여 접근할 수 있도록 설정하는 과정

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

*위 코드를 이용하여 원하는 데이터 파일을 구글 드라이브 중 원하는 폴더(contet)에 넣을 수 있다!

 

[파일 확장자] - CSV/Excel/JSON/Text 파일

  • CSV 파일(.csv) : 쉼표 (,) 형태로 구분하여 데이터를 저장
  • Excel 파일(.xls, .xlsx): 표 형태로 데이터를 저장
  • JSON 파일 (.json): 데이터를 간단하게 저장
  • 텍스트 파일(.txt,.dat): 일반 텍스트로 된 데이터를 저장
  •  

[확장자에 따른 파일 불러오는 함수]

import pandas as pd
CSV 파일(.csv) : df = pd.read_csv('file.csv')
Excel 파일(.xls, .xlsx): df = pd.read_excel('file.xlsx')
JSON 파일 (.json): df = pd.read_json('file.json')
텍스트 파일(.txt,.dat): df = pd.read_csv('file.txt', delimiter='\t')

*텍스트 파일도 read_csv를 씀

 

예시
# 내 구글드라이브의 content에 스파르타코딩클럽_데이터분석을 위한 파이썬이라는 폴더로 가는 루트를 형성하고 원하는 엑셀 파일을 해당 루트를 통해 원하는 폴더에 파일을 넣고 읽음
#경로 지정
root = "/content/drive/MyDrive/스파르타코딩클럽_데이터분석을위한파이썬"
#파일 경로 형성
file_address = root + "/ssec2403(통계표).xlsx"
#파일 불러오기
import pandas as pd
df = pd.read_excel(file_address)

 

[데이터를 파일로 저장하는 함수]

  • CSV 파일
  • Excel 파일
  • JSON 파일
  • 텍스트 파일

 

 

[패키지(라이브러리)]

: 패키지란 관련된 여러 개의 모듈을 포함하는 디텍토리

  • 라이브러리나 다른 패키지가 포함될 수 있음
  • 데이터 수집, 전처리, 시각화, 모딜링, 통계 분석 등 다양한 기능을 제공
  • pandas: 데이터 조작과 분석을 위한 라이브러리
  • numpy: 과학적 계산을 위한 핵심 라이브러리(다차원 배열과 행렬 연산 등)
  • matplotlib: 데이터 시각화를 위한 라이브러리(다양한 그래프와 플롯을 생성)
  • seaborn: maplotlib을 기반으로 한 통계용 데이터 시각화 라이브러리
  • scikit-lean: 머신 러닝 알고리즘을 사용할 수 있는 라이브러리
  • statsmodels: 통계 분석을 위한 라이브러리
  • scipy: 과학 기술 및 수학적인 연산을 위한 라이브러리
  • tensorflow: 딥러닝 및 기계 학습을 위한 오픈소스 라이브러리
  • pytorch: 딥러닝을 위한 오픈소스 라이브러리
# 아래와 같이 보통은 필요한 패키지를 한번에 다 불러온 다음 코딩을 진행하는 것이 좋음

import pandas as pd
import numpy as np
import tensorflow as tf
import matplotlib.pyplot as plt
import seaborn

 

[포맷팅(formatting)] - 3가지 방법 배움!

: 문자와 변수를 함께 출력할 때, 콤마(,)와 함께 써도 되지만 포맷팅이라는 문법을 활용할 수 있다.

1) f-string

: 문자열 맨 앞에 f , 변수의 위치에 중괄호{변수}

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

 

2) format() 함수

: f 사용  x , 변수의 위치에 중괄호{}, 온점(.) format(변수) 

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

 

3) %이용

: f 사용 x, 변수를 넣은 위치에 %d (숫자는 d, 문자는 s), %(변수)

x = 10
print("변수 x의 값은 %d입니다." % (x))

 

[리스트 캄프리헨션] -중요중요중요!!

: 리스트를 간결하게 생성하는 방법으로 보통 반복문과 조건문을 사용하여 리스트를 생성할 때 사용

# 기본적인 구조
[표현식 for 항목 in iterable if 조건문]

# 예시: 1부터 10까지의 숫자를 제곱한 리스트 생성
squares = [x**2 for x in range(1, 11)] print(squares)
# 출력: [1, 4, 9, 16, 25, 36, 49, 64, 81, 100]

 

[lambda(람다)]

: 익명 함수로, 이름 없이 정의되는 함수/ 한줄로 표현되면, 일반적인 함수 정의와는 달리 def 키워드를 사용하지 않고 lambda키워드를 사용

add = lambda x, y: x + y
print(add(3, 5))  
# 출력: 8

square = lambda x: x ** 2
print(square(4))
# 출력: 16

 

[glob 함수, os 모듈, split 메서드]

  • glob 함수: 파일 시스템에서 파일을 찾을 때 사용되는 유용한 도구 -> 파일 이름의 패턴 명칭을 통해 파일을 검색하고 일치하는 파일들의 리스트를 반환
  • os 모듈: 운영 체제와 상호작용하기 위한 다양한 함수들을 제공/ 파일 시스템을 관리하고 디렉토리를 탐색하고 파일을 조작하는 데 사용
  • split 메서드: 문자열을 여러개로 쪼개는데 유용
  • + join : 리스트의 각 항목을 문자열로 결
예시
[glob 함수]
import glob # 현재 경로의 모든 파일을 찾기
file_list1 = glob.glob('*')

# 특정 확장자를 가진 파일만 찾기
file_list4 = glob.glob('sample_data/*.csv')

[os 모듈]
# 현재 작업 디렉토리 가져오기
import os
cwd = os.getcwd()
print(cwd)

# 데렉토리 생성
import os
os.mkdir('sample_data/new_directory')

#파일 이름 변경
import os
os.rename('sample_data/new_directory', 'sample_data/new_directory2')

[split 메서드] -리스트로 변환
#문자열을 공백 기준으로 분할하여 리스트로 변환
sentence = "Hello, how are you doing today?"
words = sentence.split() 
print(words)
# 출력: ['Hello,', 'how', 'are', 'you', 'doing', 'today?']

[join()]
words = ['Hello,', 'how', 'are', 'you', 'doing', 'today?']
sentence = ' '.join(words) # 문자열로 결합
print(sentence)
# 출력: Hello, how are you doing today?

fruits = ['apple', 'banana', 'grape', 'orange']
data = ','.join(fruits) #문자열로 구분하되, 특정 구분자를 사용하여 결합
print(data)
# 출력: apple,banana,grape,orange


 

[Quiz]

 

1. ‘01. 파일 불러오기 및 저장하기’ ‘3)파일 저장하기’에서 저장 했던 파일들을 불러오세요!

답: 
import pandas as pd
df = pd.read_csv('/content/sample_data/data.csv')

import pandas as pd
df = pd.read_excel('/content/sample_data/data.xlsx')

import pandas as pd
df = pd.read_json('/content/sample_data/data.json')

import pandas as pd
df = pd.read_csv('/content/sample_data/data.txt')

 

2. 다음 코드의 출력은 무엇입니까? (코드를 치지 않고 예측해보세요!)

squares = [x**2 for x in range(1, 6)]
print(squares)

a) [1, 4, 9, 16, 25]

b) [1, 3, 5, 7, 9]

c) [1, 2, 3, 4, 5]

d) [2, 4, 6, 8, 10]

 

3. 파이썬에서 패키지의 역할은 무엇입니까?

a) 프로그램의 실행 속도를 향상시키기 위해 사용됩니다.

b) 코드의 재사용성을 높이기 위해 사용됩니다.

c) 데이터베이스 관리를 위해 사용됩니다.

d) 네트워크 통신을 위해 사용됩니다.

 

4. 다음 중 glob 함수의 사용 예시로 올바른 것은 무엇입니까?

a) 파일 삭제

b) 파일 생성

c) 파일 검색 및 패턴 매칭

d) 파일 압축하기

 

5. 아래의 데이터와 클래스 일부분을 수정하여 평균을 계산하는 클래스를 완성하고 실제로 클래스를 선언하여 계산된 결과 까지도 출력해 보세요!

# 데이터는 이것을 사용하세요
data = [2, 4, 6, 8, 10]

class DataPreprocessor:
    def __init__(self, data):
        self.data = data

    def calculation(self):
       average = sum(self.data) / len(self.data)
       return average

preprocessor = DataPreprocessor(data)
average = preprocessor.calculation()

print("평균:", average)

 

 

이외에도 클래스, 데코레이션에 대해서도 배웠는데 아직 이해를 못해서 더 공부할 예정