콘텐츠로 이동

데이터 필터링하기

실습 데이터

school_score

필요한 모듈 설치하기

!pip install gradio

google drive 연결하기

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

성적 데이터 읽기

import numpy as np
import pandas as pd

df = pd.read_csv('/content/drive/MyDrive/Colab Notebooks/school_score.csv', sep=',', encoding="cp949")
df

성적 계산하기 합계

import numpy as np
import pandas as pd

df = pd.read_csv('/content/drive/MyDrive/Colab Notebooks/school_score.csv', sep=',', encoding="cp949")

df['합계'] = df['중간'] + df['기말'] + df['리포트'] + df['출석']

df

성적 계산하기 등급 - 절대평가

import numpy as np
import pandas as pd

df = pd.read_csv('/content/drive/MyDrive/Colab Notebooks/school_score.csv', sep=',', encoding="cp949")

df['합계'] = df['중간'] + df['기말'] + df['리포트'] + df['출석']

df['등급'] = pd.cut(x=df['합계'],
    bins=[0, 110, 140, 170, 200, 230],
    labels=['F', 'D', 'C', 'B', 'A'],
    include_lowest=True)

df

성적 계산하기 등급 - 상대평가

import numpy as np
import pandas as pd

df = pd.read_csv('/content/drive/MyDrive/Colab Notebooks/school_score.csv', sep=',', encoding="cp949")

df['합계'] = df['중간'] + df['기말'] + df['리포트'] + df['출석']

df['등급'] = pd.qcut(x=df['합계'], q=5, labels=['F', 'D', 'C', 'B', 'A'])

df

Gradio에서 표로 표시하기

import numpy as np
import gradio as gr

df = pd.read_csv('/content/drive/MyDrive/Colab Notebooks/school_score.csv', sep=',', encoding="cp949")

df['합계'] = df['중간'] + df['기말'] + df['리포트'] + df['출석']

df['등급'] = pd.qcut(x=df['합계'], q=5, labels=['F', 'D', 'C', 'B', 'A'])

with gr.Blocks() as demo:
    gr.DataFrame(df)

demo.launch()

성적 등급으로 필터링 하기

import numpy as np
import gradio as gr

df = pd.read_csv('/content/drive/MyDrive/Colab Notebooks/school_score.csv', sep=',', encoding="cp949")

df['합계'] = df['중간'] + df['기말'] + df['리포트'] + df['출석']

df['등급'] = pd.qcut(x=df['합계'], q=5, labels=['F', 'D', 'C', 'B', 'A'])

def filter_data(grade):
    if grade == "All":
        return df
    else:
        return df[df['등급'] == grade]

with gr.Blocks() as demo:
    with gr.Row():
        grade = gr.Dropdown(["All", "A", "B", "C", "D", "F"], value="All")

    df_output = gr.DataFrame(df)

    # 드롭다운 값 변경 시 필터링된 데이터로 DataFrame 업데이트
    grade.change(fn=filter_data, inputs=grade, outputs=df_output)  

demo.launch()