TIL

[12/27] TIL (파이썬 종합반 5주차)

pys6341 2024. 12. 27. 17:53

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

  • csv파일
import pandas as pd
df = pd.read_csv('file.csv')

 

  • Excel파일
import pandas as pd
df = pd.read_excel('file.xlsx')
  • JSON파일
import pandas as pd
df = pd.read_json('file.json')
  • 텍스트파일
import pandas as pd
df = pd.read_csv('file.txt', delimiter='\t')  # 만약 탭으로 구분되어 있다면 delimiter='\t'를 사용합니다.

 

 

[저장하기]

import pandas as pd

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

df = pd.DataFrame(data)
excel_file_path = '/content/sample_data/data.csv'
df.to_csv(excel_file_path, index = False)

print("csv 파일이 생성되었습니다.")

* .csv부분 바꾸면 됨

 

 

 

텍스트파일

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

text_file_path = '/content/sample_data/data.txt'

with open(text_file_path, 'w') as textfile:
    for key, item in data.items():
        textfile.write(str(key) + " : " + str(item) + '\n')

print("텍스트 파일이 생성되었습니다.")

 

 

2. 패키지 사용하기

 

  • pandas

>> 데이터 조작과 분석을 위한 라이브러리로, 효과적으로 조작하고 분석할 수 있도록 도와줌

import pandas as pd
df = pd.read_excel(file_address)
print(df)

 

  • numpy

>> 과학적 계산을 위한 핵심 라이브러리로, 다차원 배열과 행렬 연산을 지원함

import numpy as np
arr = np.array([1, 2, 3, 4, 5])
print(arr.mean())

 

  • matplotlib

>> 데이터 시각화를 위한 라이브러리로, 다양한 그래프와 플롯을 생성할 수 있음

import matplotlib.pyplot as plt
plt.plot([1, 2, 3, 4], [1, 4, 9, 16])
plt.xlabel('X-axis')
plt.ylabel('Y-axis')
plt.show()

 

  • tensorflow

>> 딥러닝 및 기계 학습을 위한 오픈소스 라이브러리로, 그래프 기반의 계산을 통해 수치 계산을 수행하며 신경망을 구축하고 학습할 수 있음

import tensorflow as tf

input_size = 3

model = tf.keras.Sequential([
    tf.keras.layers.Dense(10, activation='relu', input_shape=(input_size,)),
    tf.keras.layers.Dense(1)
])
model.compile(optimizer='adam', loss='mse')

 

3. 포맷팅 사용하기

  • 변수와 문자가 다양하게 많이 출력해야 하는 상황에서 편리하게 사용 가능함
x = 10
print(f"변수 x의 값은 {x}입니다.")

 

 

4. 리스트 컴프리헨션

  • 반복문과 조건문을 사용해 리스트를 생성할 때 사용
  • 코드를 간결하고 가독성있게 만들어 줌
# 기본적인 구조
[표현식 for 항목 in iterable if 조건문]

 

 

5. lambda 

  • 이름 없이 정의되는 간단한 함수
  • lambda 키워드를 사용하여 정의

예) 

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

 

 

6. glob

  • 파일 시스템에서 파일을 찾을 때 사용되는 유용한 도구
# 디렉토리 안의 모든 파일 찾기
file_list3 = glob.glob('sample_data/*')

 

 

7. os 

  • 파일 시스템을 관리하고, 디렉토리를 탐색하고, 파일을 조작하는 데 사용

> 현재 작업 디렉토리 가져오기

import os
cwd = os.getcwd()
print(cwd)

 

> 파일 삭제

import os
os.remove(file_adress)

import os
os.remove('sample_data/data.csv')

 

> 파일 목록 가져오기

import os
files = os.listdir('/content')
print(files)

 

> 경로 조작

import os
path = os.path.join('/content', 'sample_data', 'mnist_test.csv')
print(path)

 

8. split 

  • 문자열을 여러개로 쪼개는데 유용함
sentence = "Hello, how are you doing today?"
words = sentence.split()
print(words)  # 출력: ['Hello,', 'how', 'are', 'you', 'doing', 'today?']

 

 

9. 클래스

  • 객체 지향 프로그래밍의 중요한 개념 중 하나
  • 객체 지향 프로그래밍이란 현실 세계의 사물을 모델링하여 프로그래밍하는 방법
class ClassName:
    def __init__(self, parameter1, parameter2):
        self.attribute1 = parameter1
        self.attribute2 = parameter2

    def method1(self, parameter1, parameter2):
    # 메서드 내용 작성
        pass

* 클래스 내부의 메서드들은 클래스의 동작을 정의하는 함수

* 첫번째 매개변수로 self를 반드시 사용해야함

 

 

10. 불리언 인덱싱

  • 조건에 따라 요소를 선택하는 방법
  • 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)  # 출력: [1 3 5]

# 불리언 인덱싱을 사용하여 배열에서 짝수인 요소만 선택
evens = arr[arr % 2 == 0]

# 결과 출력
print("Even numbers using boolean indexing:", evens)  # 출력: [2 4]

 

 

11. 데코레이션 

  • 기존의 함수를 따로 수정하지 않고도 추가 기능을 넣고 싶을 때 사용
def decorator_function(original_function):
    def wrapper_function(**kwargs):
        # 함수 호출 전에 실행되는 코드
        result = original_function(**kwargs)
        # 함수 호출 후에 실행되는 코드
        return result
    return wrapper_function

 

 

12. 파이썬 에러 대처법

  1. SyntaxError (구문 오류) : 괄호, 따옴표, 콜론, 들여쓰기 확인
  2. IndentationError(들여쓰기 오류) : 들여쓰기 일관되게 맞추어야함
  3. NameError(이름 오류): 사용된 변수나 함수가 정의되었는지 확인
  4. TypeError(타입 오류): 연산이나 함수 호출에서 사용되는 데이터 타입을 확인하고 필요한 형 변환 수행
  5. IndexError(인덱스 오류): 인덱스 범위를 확인하고 존재하지않는 인덱스에 접근하는 것 피하기
  6. KeyError(키 오류): 사용되는 키가 딕셔너리에 존재하는지 확인
  7. FileNotFoundError (파일을 찾을 수 없음 오류): 파일 경로 올바르게 지정했는지 확인