본문 바로가기
빅데이터분석

구글코랩(Colab)에서 py파일 저장하고 불러오기!

by 모닥불🔥 2024. 10. 3.

함수를 만들어서 .py 파일에 저장해 두면 import로 내가 만든 함수를 불러올 수 있다. 다른 라이브러리의 함수들처럼!

강의를 듣다가, 이런 내용을 듣고 있었는데... 구글코랩에서 따라하려니까 .py 파일로 저장하는 것부터 어려웠다.

결국 방법을 알아냈는데, 나중을 위해 정리해 두기로 했다...!

 

1. 구글 드라이브 연결

먼저, 코랩 새 창을 연 다음, 아래 코드를 실행시켜 내 구글드라이브와 연결한다.

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

 

코랩을 쓰는 사람이라면 아주 익숙할 것 같은... 과정

 

2. 함수 생성

원하는 함수를 코드로 쓴다. 함수를 실행시키는 데 필요한 라이브러리도 같이 넣어주면 좋을 것 같다.

# 그래프 함수

import pandas as pd
import numpy as np
import seaborn as sns
import matplotlib.pyplot as plt
import plotly.express as px
import plotly.graph_objects as go
from plotly.subplots import make_subplots

def histogram_plot(df, column):
    fig = px.histogram(df, x=column, title=f"Count plot of {column}")
    fig.show()
    return fig

def count_plot(df, column):
    fig = px.histogram(df, x=column, title=f"Count plot of {column}",
             category_orders={column:df[column].value_counts().index})
    fig.show()
    return fig

def plot_df(df):
    fig_list = list()

    for column in df.columns:
        if pd.api.types.is_numeric_dtype(df[column]):
            fig = histogram_plot(df, column)
        elif pd.api.types.is_object_dtype(df[column]):
            fig = count_plot(df, column)
        fig_list.append(fig)
    return fig_list

 

3. 드라이브에 .py파일 저장

작성한 함수 코드를 code 변수에 저장하고, 아래 코드를 따라 내 드라이브에 저장한다.

code = ''' ''' 으로 감싸서 저장해 주어야 한다.

with open('경로/파일명.py', 'w') as f: ~~ 이런 형태로, 괄호 속 첫 번째 따옴표에는 경로와 파일 명이 들어간다.

'w'는 파이썬에서 작성한다(write)는 뜻으로, 따로 손대지 않아도 된다.

code = '''
import pandas as pd
import matplotlib.pyplot as plt
import seaborn as sns

def histogram_plot(df, column):
    plt.figure(figsize=(10, 6))
    sns.histplot(df[column], kde=True)
    plt.title(f'{column} Histogram')
    plt.show()

def count_plot(df, column):
    plt.figure(figsize=(10, 6))
    sns.countplot(data=df, x=column)
    plt.title(f'{column} Count Plot')
    plt.show()

def plot_df(df):
    fig_list = list()

    for column in df.columns:
        if pd.api.types.is_numeric_dtype(df[column]):
            fig = histogram_plot(df, column)
        elif pd.api.types.is_object_dtype(df[column]):
            fig = count_plot(df, column)
        fig_list.append(fig)
    return fig_list
'''

# 경로와 파일 이름을 올바르게 지정
with open('/content/utils2024.py', 'w') as f:
    f.write(code)

 

4. .py 파일을 라이브러리처럼 불러와 사용하기

.py 파일을 import 해서 내부에 정의된 함수를 사용할 수 있다.

import utils2024 as ut24

# 예시 데이터프레임 생성
import pandas as pd
data = {'num_column': [1, 2, 3, 4, 5], 'cat_column': ['A', 'B', 'A', 'C', 'B']}
df = pd.DataFrame(data)

# 함수 사용
ut24.plot_df(df)

 

# 주의사항

.py 파일은 지금 열고 있는 코랩 노트북과 동일한 위치에 저장되어 있어야 한다.

그렇지 않으면 import 로 아무리 불러와도 오류가 나기 때문!!

 

tip. 현재 작업 중인 파일 경로 확인하기

작업 중인 파일의 경로는 아래 코드로 확인할 수 있다.

import os
print(os.getcwd())  # 현재 작업 디렉토리 확인

 

나는 결과로 /content 라고 나오길래 .PY 파일 저장 위치를 /content로 지정했다. :)

 

그럼, 짧은 정리 글을 마치고 이만 화르륵🔥

 

 

[타닥타닥 조용히 공부하는 모닥불 블로그 🔥]