<jupyter_start><jupyter_text>Problem 1- 아래와 같은 데이터 프레임을 만드세요- 아래와 같이 데이터가 나오도록 코드를 추가하시면 됩니다.- 점수는 50~100의 숫자가 랜덤으로 들어갑니다.- 이름은 아래의 이름에서 랜덤으로 중복되지 않도록 10명을 뽑으세요- names = ['Adam', 'Alan', 'Alex', 'Alvin', 'Andrew', 'Anthony', 'Arnold', 'Baldy', 'Baron', 'Billy', 'Boris', 'Bruno', 'Caley', 'Champ', 'Charlie', 'Clark']- total 데이터를 나타내는 컬럼을 추가하세요- get_grade 함수를 이용해서 total 데이터에 대한 grade컬럼을 출력하세요- 뽑은 데이터의 Grade로 오름차순하시오<jupyter_code>%%time
import random, string
import pandas as pd
import numpy as np
import time

names = ['Adam', 'Alan', 'Alex', 'Alvin', 'Andrew', 'Anthony', 'Arnold', 'Baldy', 
         'Baron', 'Billy', 'Boris', 'Bruno', 'Caley', 'Champ', 'Charlie', 'Clark']

df = pd.DataFrame(columns=['Name', 'Math', 'Science', 'English'])

names_array = np.array(names); np.random.shuffle(names_array)

name = list(names_array[0:10])


def get_Name(number):
    return name[number]
    
def get_Math(start=50, end=100):
    return random.randint(start, end)

def get_Science(start=50, end=100):
    return random.randint(start, end)

def get_English(start=50, end=100):
    return random.randint(start, end)

def make_data(rows=10):
    datas = []
    for i in range(rows):
        
        data = {'Name': get_Name(i), 'Math':get_Math(), 
                'Science':get_Science(), 'English':get_English()}
        datas.append(data)
    return datas

df = pd.DataFrame(make_data(10))

df['Total'] = df['Math'] + df['Science'] + df['English']

# Set grade
def get_grade(point):
    if point >= 270:
        return "A"
    elif point > 240:
        return "B"
    elif point >= 210:
        return "C"
    elif point >= 180:
        return "D"
    else:
        return "F"

df['Grade'] = df['Total'].apply(get_grade)
df = df.sort_values(by=['Grade'], ascending=True).reset_index(drop=True)

Name = df['Name']
df.drop('Name', axis=1, inplace=True)
df['Name'] = Name

df = df[['Name', 'English', 'Math', 'Science', 'Total', 'Grade']]
df<jupyter_output><empty_output>
{'fraction_non_alphanumeric': 0.17784552845528456, 'fraction_numerical': 0.02184959349593496, 'mean_word_length': 3.959697732997481, 'pattern_counts': {'":': 0, '<': 5, '<?xml version=': 0, '>': 9, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'chain_length': '1', 'dir': 'jupyter-structured-clean-dedup', 'id': '536368', 'license': 'MIT', 'n_tokens_mistral': 911, 'n_tokens_neox': 908, 'n_words': 192, 'path': '2018_05_28_Pandas_problem_solving.ipynb', 'repo_name': 'jaykim-asset/datascience_review', 'size': '1968'}