데이터분석 study/Python

TIL(Today I Learned) 24.07.09_ 알면 유용한 파이썬 문법들1

justdata 2024. 7. 9. 17:57

아침에 알고리즘 코드카타를 풀다가 

몰랐던 python으로 제곱근을 구하는 방법을 TIL에 추가로 작성했다.

2024.07.09 - [데이터분석 study/Python] - TIL(Today I Learned) 24.07.09_ 제곱근 구하기

 

TIL(Today I Learned) 24.07.09_ 제곱근 구하기

아침에 알고리즘 코드카타 문제를 풀다가 내가 몰랐던 내용이어서 작성하게 되었다. ▶제곱 구하기    - 일단 먼저 특정 숫자의 제곱을 구할 때는 특정 숫자 뒤에 '**' 를 사용해서 구한다. ▶

justdata.tistory.com

 

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

    ● csv파일

        - 데이터 프레임으로 불러오기 : pandas 라이브러리의 read_csv() 함수를 사용

          예시 코드)

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

       ** excel 파일은 read_excel() 함수, json 파일은 read_json() 함수를 사용

 

    ●텍스트 파일 (.txt, .dat 등)

        - 데이터프레임으로 불러오기 : pandas 의 read_csv() 함수를 사용할 수 있다.

        예시코드)

import pandas as pd
df = pd.read_csv('file.txt', delimiter='\t')  

# 만약 탭으로 구분되어 있다면 delimiter='\t'를 사용합니다.

    ** 이 방법 말고도 다양한 방법이 있으니 필요할 때마다 구글링 하기

 

▶ 파일 저장하기

    ● csv 파일

     예시코드)

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)
# index = False 는 csv 파일에 데이터 표가 생성될 때 행에 번호가 표시 되는 것을 없애준다.
print("csv 파일이 생성되었습니다.")

 

    ● excel 파일(.xls, .xlsx)

    예시 코드)

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.xlsx'
df.to_excel(excel_file_path, index = False)

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

    

    ● json 파일(.json)

       예시 코드)

import json

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

json_file_path = '/content/sample_data/data.json'

# json 파일을 쓰기모드('w')로 열어서 data를 거기에 덮어씌우게 됩니다.
with open(json_file_path, 'w') as jsonfile:
    json.dump(data, jsonfile, indent=4)

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

   

  ● 텍스트 파일(.txt, .dat 등)

     예시 코드)

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("텍스트 파일이 생성되었습니다.")

 

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

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

    ● 예를 들어 numpy와 matplotlib는 여러 모듈을 포함하는 패키지

    ● 데이터 분석을 위한 파이썬 패키지들은 다양한 작업을 수행하는데 필수

    ● 이들 패키지들은 데이터 수집, 전처리, 시각화, 모델링, 통계 분석 등 다양한 기능을 제공

    ● 패키지는 맨 처음 파이썬을 사용할 대 필요한 패키지들을 맨위에 한번에 불러놓고

       사용하면 편리

# 아래와 같이 보통은 필요한 패키지를 한번에 다 불러온 다음 코딩을 진행합니다

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

 

        - pandas : 데이터 조작과 분석을 위한 라이브러리로 데이터를 효과적으로 조작, 분석

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

        - matplotlib : 데이터 시각화를 위한 라이브러리로, 다양한 그래프와 플롯을 생성

        - seaborn : matplotlib을 기반으로 한 통계용 데이터 시각화 라이브러리로, 보다 간편하고

                          아름다운 시각화를 제공

        - scikit-learn : 머신 러닝 알고리즘을 사용할 수 있는 라이브러리로, 분류, 회귀, 군집화, 차원 축소

                              등 다양한 머신 러닝 기법을 제공

           

from sklearn.datasets import load_iris
from sklearn.linear_model import LinearRegression

# Iris 데이터셋 불러오기
iris = load_iris()

# Iris 데이터셋에서 특정 범위의 데이터 슬라이싱하기
X_train = iris.data[:,:-1]  # 데이터 값들 추출
print("학습 데이터:", X_train)
y_train = iris.data[:,-1:]  # 정답값 추출
print("학습 데이터:", y_train)

model = LinearRegression()
model.fit(X_train, y_train)

 

       - 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')

       **이 외에도 다양한 데이터 분석을 위한 패키지들도 많아서 구글링하며 공부하기

 

▶포맷팅 사용하기

    ● 대표적인 f-string (python 3.6 이상부터)

     

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

    

    ● 다른 포맷팅 방법

   

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

 ** f-string 과 다른 점은 문자열 맨 앞에 f를 적지 않고, 대신 문자열 맨뒤에 온점(.)을 찍고 format() 함수

     를 사용하며 그 함수에 변수를 집어 넣어줘야 한다.

 

 

▶리스트 캄프리헨션

    ● 파이썬에서 리스트를 간결하게 생성하는 방법,

    ● 보통 반복문과 조건문을 사용하여 리스트를 생성할 때 사용 

      기본구조)

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

      ** 표현식은 각 항목에 대한 계산,변환을 의미, 항목은 반복되는 값, iterable 은 반복 가능한 객체

 

       예시코드)

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

# 예시: 리스트에서 짝수만 선택하여 제곱한 리스트 생성
even_squares = [x**2 for x in range(1, 11) if x % 2 == 0]
print(even_squares)  # 출력: [4, 16, 36, 64, 100]

# 예시: 문자열 리스트에서 각 문자열의 길이를 저장한 리스트 생성
words = ["apple", "banana", "grape", "orange"]
word_lengths = [len(word) for word in words]
print(word_lengths)  # 출력: [5, 6, 5, 6]

# 예시: 리스트 컴프리헨션을 중첩하여 2차원 리스트 생성
matrix = [[i for i in range(1, 4)] for j in range(3)]
print(matrix)  # 출력: [[1, 2, 3], [1, 2, 3], [1, 2, 3]]

** if 조건문은 선택적으로 사용될 수 있으며, 조건이 참일 대만 해당 항목을 결과 리스트에 추가

 

 

▶lambda 사용하기

  ● 람다 함수는 익명 함수로 이름 없이 정의되는 간단 함수

  ● 주로 한 줄로 표현, lambda 키워드를 사용하여 정의 

  ● 이름이 없기 때문에 한 번만 사용되거나 임시로 필요한 경우에 사용 

  ● 람다 함수는 주로 함수를 매개변수로 받거나 함수를 반환하는 고차원 함수, 

      즉 함수형 프로그래밍에서 사용됨

  ● 그러나 람다 한수는 모든 상황에 적합하지 않다.

 

예시 코드)

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

 

** filter라는 내장 함수는 여러 개의 데이터로 부터 조건을 충족 하는 데이터만 추출할 때 사용

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]

 

** map이라는 내장함수는 여러개의 값을 받아서 각각의 값에 함수를 적용한 결과를 반환

numbers = [1, 2, 3, 4, 5]
squared_numbers = list(map(lambda x: x ** 2, numbers))
print(squared_numbers)  # 출력: [1, 4, 9, 16, 25]