데이터 필터링하기
실습 데이터
school_score
필요한 모듈 설치하기
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()