21.12.06 파이썬 데이터처리 모의테스트

2021. 12. 6. 21:27작업/데이터분석

# 먼저 회피스킬 쓴 유저

# 지시사항을 참고하여 코드를 작성하세요.
def checkLog(log_1p, log_2p):
    count1=9999
    count2=9999
    for i in range(len(log_1p)):
        print(log_1p[i][0])
        if log_1p[i][0]=='#':
            count1=i
    for i in range(len(log_2p)):
        print(log_2p[i][0])
        if log_2p[i][0]=='#':
            count2=i
    print(count1, count2)
    if count1<=count2:
        return '1p'
    else:
        return '2p'
# 값을 확인하기 위한 코드입니다. 값을 변경해가며 테스트해 보세요!
print(checkLog(["@회복~","!공격!","!공격!","!공격!","!공격!"], ["@회복~#","!공격!","!공격!","@회복~","#회피"]))

# 차량 판매 실적

# 아래 코드는 문제 해결을 위해 기본적으로 제공되는 코드입니다. 수정하지 마세요!
import pandas as pd

df = pd.read_csv('car_sales.csv')

print(df)
# 지시사항을 참고하여 코드를 작성하세요.
def total(df, s):
    target = df[df['manufacturer']==s]
    print(target)
    return target['sales'].sum()

# 값을 확인하기 위한 코드입니다. 값을 변경해가며 테스트해 보세요!
print(total(df, 'Cadillac'))

# 부가세 더하기

# 아래 코드는 문제 해결을 위해 기본적으로 제공되는 코드입니다. 수정하지 마세요!
import pandas as pd 
import elice_func

pd.set_option('max_rows', None)
goods_df = elice_func.goods_df

# 지시사항 1번을 참고하여 코드를 작성하세요.
Func = lambda x:1.1*x


# 지시사항 2번을 참고하여 코드를 작성하세요.
goods_df['price'] = goods_df['price'].apply(Func)


# 값을 확인하기 위한 코드입니다.
print(goods_df)

# 망가진 자료 고치기

# 지시사항 1번을 참고하여 코드를 작성하세요.
output = []
filename='words.txt'
with open(filename) as file:
    for line in file:
        line=line.strip()
        line=line.lower()
        line=line.replace('!','').replace('@','').replace('#','').replace('$','').replace('%','').replace('^','').replace('&','').replace('*','').replace('(','').replace(')','')
        output.append(line)
        print(line)
# for i in filelist:
#     print(f'{i}')
file.close()
# 지시사항 2번을 참고하여 코드를 작성하세요.


# 지시사항 3번을 참고하여 코드를 작성하세요.

# 영어 단어 빈도수 찾기

def get_word(pair):
    return pair[0]

def filter_by_text(text) :
    # 지시사항을 참고하여 코드를 작성하세요.
    filename='corpus.txt'
    tuples=[]
    with open(filename) as file:
        for i in file:
            word = i.strip().split('/')[0]
            freq = i.strip().split('/')[1]
            if word[0]==text:
                new_tuple=(word,freq)
                tuples.append(new_tuple)
    sorted_tuples=sorted(tuples, key=get_word)
    if len(tuples)>=20:
        return sorted_tuples[:20]
    return sorted_tuples


# 값을 확인하기 위한 코드입니다. 값을 변경해가며 테스트해 보세요!
print(filter_by_text('a'))

# 넷플릭스 시청 데이터 분석하기

# 아래 코드는 문제 해결을 위해 기본적으로 제공되는 코드입니다. 수정하지 마세요!
import json
from movies import titles

def get_top_movies(n) :
    first_tuples=[]
    final_tuples=[]
    # 일단 string뭉텅이인 JSON을 딕셔너리로 loads
    with open('netflix.json') as file:
        jsondict = json.loads(file.read())
    # jsondict : (영화코드,관람객 수) 튜플 만들기
    for key,value in jsondict.items():
        if len(value)>n:
            new_tuple=(int(key),len(value))
            first_tuples.append(new_tuple)
    # final_tuples : (해당 영화제목, 관람객 수)
    print(first_tuples)
    for i in first_tuples:
        new_tuple=(titles[i[0]],i[1])
        final_tuples.append(new_tuple)
    # sorted_tuples : final_tuples를 관람객 수로 내림차순
    sorted_tuples=sorted(final_tuples, key=lambda pair:-pair[1]) # 내림차순 -pair[1]
    return sorted_tuples
    

# 값을 확인하기 위한 코드입니다. 값을 변경해가며 테스트해 보세요!
print(get_top_movies(23500))

# 양치기 소년 거짓말

진실을 말한 일수 반환 -> count_nonzero(트루값) 이므로 count_nonzero(liar_array==1)

# 아래 코드는 문제 해결을 위해 기본적으로 제공되는 코드입니다. 수정하지 마세요!
import numpy as np


# 지시사항을 참고하여 코드를 작성하세요.
def true_or_false(data):
    liar_array = np.array(data)
    return np.count_nonzero(liar_array==1)

# 값을 확인하기 위한 코드입니다. 값을 변경해가며 테스트해 보세요!
print(true_or_false([0,1,1,1,0]))