1.파일 불러오기 및 저장하기
1). 파일 확장자
- CSV 파일 (.csv)
데이터를 쉼표(,)로 구분하여 저장하는 형식
- Excel 파일 (.xls, .xlsx)
마이크로소프트 엑셀의 형식
- JSON 파일 (.json)
자바스크립트노테이션, 데이터를 저장하는 간단한 형식
- 텍스트 파일 (.txt, .dat 등)
2). 판다스에서 제공하는 함수를 이용하여 불러올 수 있음.
- csv 파일의 경우
read_csv() 함수 사용
import pandas as pd
df = pd.read_csv(파일경로)
- Excel 파일의 경우
read_excel() 함수 사용
위의 코드에서 pd.read_excel(파일경로) 만 바꿔주면 됨.
아래도 위와 동일
- json 파일의 경우
read_json
- 텍스트 파일의 경우엔 read_csv 함수를 사용
3). 파일 저장하기
df = pd.DataFrame(data)
excel_file_path = '/content/sample_data/data.csv'
df.to_csv(excel_file_path, index = False)
엑셀파일의 경우 2번째 줄 data.excel
3번째 줄 df..to_excel로 수정, 나머지 동일
json 파일의 경우는 with으로 열어줘야 함.
json_file_path = '/content/sample_data/data.json'
# json 파일을 쓰기모드로 열어서 data를 거기에 덮어씌우게 됩니다.
with open(json_file_path, 'w') as jsonfile:
json.dump(data, jsonfile, indent=4)
dump > data를 jsonfile에 덮어 씌워줌.
indent > 들여쓰기
jsonfile > 파일명
텍스트 파일
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')
2. 패키지 사용하기
import 패키지명 (as 별칭)
1) 패키지 종류
- 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()
- seaborn : Matplotlib을 기반으로 한 통계용 데이터 시각화 라이브러리
import seaborn as sns
import pandas as pd
data_sample = pd.DataFrame({'x':[1, 2, 3, 4], 'y':[1, 4, 9, 16]})
sns.barplot(data=data_sample, x='x', y='y')
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)
- statsmodels : 통계 분석을 위한 라이브러리, 회귀 분석, 시계열 분석, 비모수 통계 등 다양한 통계 기법을 제공
import statsmodels.api as sm
model = sm.OLS(y_train, X_train)
result = model.fit()
print(result.summary())
- scipy : 과학기술 및 수학적인 연산을 위한 라이브러리, 다양한 과학 및 공학 분야에서 활용
import numpy as np
from scipy.integrate import quad
# 적분할 함수 정의
def integrand(x):
return np.exp(-x ** 2)
# 정적분 구간
a = 0
b = np.inf
# 적분 계산
result, error = quad(integrand, a, b)
print("결과:", result)
print("오차:", error)
- 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')
- pytorch : 딥러닝을 위한 오픈소스 라이브러리, 동적 계산 그래프를 사용하여 신경망을 구축하고 학습할 수 있음.
import torch
import torch.nn as nn
class Model(nn.Module):
def __init__(self):
super(Model, self).__init__()
self.fc1 = nn.Linear(input_size, hidden_size)
self.fc2 = nn.Linear(hidden_size, output_size)
def forward(self, x):
x = torch.relu(self.fc1(x))
x = self.fc2(x)
return x
- glob
> glob 함수는 파일 시스템에서 파일을 찾을 때 사용
-
import glob
file_list1 = glob.glob('*')
첫 번째 glob => 패키지
두 번째 glob => 함수명
**참고!) 폴더(디렉토리)에 대한 유용한 개념들!**
- 폴더를 구분할때는 ‘/’기호를 사용하면 됩니다!
- 파일명을 입력해줄 때 반드시 확장자도 함께 입력해주어야 합니다!
- 일치하는 파일이나 디렉토리의 패턴을 나타낼 때 와일드카드 문자를 사용됩니다. 주로 파일이나 디렉토리의 이름을 검색하거나 일괄적으로 처리할 때 유용하게 사용됩니다.
- *** : 0개 이상의 모든 문자와 일치합니다.**
- **ex) *.txt : 해당 디렉토리에서 텍스트파일 모두 해당**
- 그밖의 와일드카드 문자로 ?, [], {} 등이 있습니다.
- [] : 대괄호 안에 포함된 문자 중 하나와 일치합니다.
- {} : 중괄호 안에 포함된 문자열 중 하나와 일치합니다.
os : os모듈은 운영체제와 상호 작용하기 위한 다양한 함수들을 제공
주요기능
1) 파일 및 디렉토리 관리
#현재 작업중인 디렉토리 가져오기
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')
#파일 삭제
import os
os.remove(file_adress)
import os
os.remove('sample_data/data.csv')
2) 경로 관리
# 파일 목록(경로) 가져오기
import os
files = os.listdir('/content')
print(files)
#경로 조작
import os
path = os.path.join('/content', 'sample_data', 'mnist_test.csv')
print(path)
3) 환경 변수 관리
4) 실행 관리
3. lambda, filter, map
1) lambda
- 이름 없이 정의되는 간단한 함수
- 주로 함수를 매개변수로 전달하는 함수형 프로그래밍에서 유용하게 활용됨.
기본구조
lambda 매개변수 : 수식
ex) add = lambda x,y: x+y
2) filter
- 반복가능한 데이터로부터 값을 가져와 조건에 대해 True인 값만 반환
기본구조
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]
3) map
- 반복가능한 데이터로부터 값을 가져와 모든 x의 값을 반환
기본구조
map(함수, 반복가능한 데이터)
'TIL > Python' 카테고리의 다른 글
TIL (7/12) <zip(), enumerate()> (0) | 2024.07.12 |
---|---|
TIL (7/11) <class, 불리언 인덱싱, 데코레이션, upper(), lower()> (0) | 2024.07.11 |
TIL #11 <Date_format , join(python), abs(python, 연산자 우선순위)> (0) | 2024.07.09 |
TIL #10 <집합과 리스트의 차이, Month, *args와 **kwargs > (0) | 2024.07.08 |
TIL #9 < 음양더하기, 번호 가리기, 없는 문자 빼기 > (0) | 2024.07.06 |