[python]pandas DataFrame 분석

eunhye_·2022년 6월 22일
0

Python

목록 보기
4/9

import

import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
import matplotlib

#한글 폰트 설정
matplotlib.rcParams['font.family']='Malgun Gothic'
matplotlib.rcParams['axes.unicode_minus'] = False

예제

# 데이터 생성1
sr = pd.Series( [90,90,55,60,76,80,76,88,30,25],
               name="국어점수" )
sr.index=['홍길동','이순신','임꺽정','정난정',
         '이이','이황','정도전','김철수1',
          '김철수2','김철수3']
sr

# 데이터 생성2
fruit=pd.Series( [10,20,30,50],index=['사과','딸기','포도','수박'], name='과일' )
fruit

# 1. 이름순으로 정렬하시오
sr.sort_index(), fruit.sort_index()

# 2. 키보드로 입력 받아 검색된 이름의 점수를 구하시오
x = input()
sr[x]

# Series -> DataFrame
sr = pd.DataFrame(sr)
sr

# 3. 데이터를 다음과 같이 출력하시오
# ['학점']-> (0~59:F , 60~69:D, 70~79:C, 80~89:B, 90~100:A)
# column에 넣을 List 생성
grade = []
for i in range(len(sr)):
    if sr[i]>=90:
        grade.append('A')
    elif 89>=sr[i]>=80:
        grade.append('B')
    elif 79>=sr[i]>=70:
        grade.append('C')
    elif 69>=sr[i]>=60:
        grade.append('D')
    else:
        grade.append('F')
 # 컬럼 생성 및 확인
 sr['학점'] = grade
sr

# 4. 국어 점수 50점 이하는 가산점 20%, 50점 초과는 가산점 10%를 부여하시오
#국어점수를 list로 만든 후 가산 후 컬럼에 추가
kor_score = [] # 빈 List
kor = pd.Series(sr['국어점수'])
for i in range(10):
    kor_score.append(kor[i])
# 점수에 따라 가산
for i in range(10):
    if kor_score[i]<=50:
        kor_score[i] = kor_score[i]*1.2
    else:
        kor_score[i] = kor_score[i] * 1.1
#컬럼에 대입
sr['국어점수'] = kor_score
sr

# 5. 국어점수 10%, 50%, 90%에 해당하는 값을 구하시오
sr['국어점수'].quantile([0.1,0.5,0.9])

#6. 각 국어점수에 대한 개수를 구하시오
sr['국어점수'].value_counts()

#7. 국어점수에 대한 boxplot을 그리시오
plt.figure(figsize=(10, 7))
sr.boxplot(column=['국어점수'])
plt.show()

#8. 국어점수를 10개(0~100점을) 로 분할한 경우 각 점수별 도수분포표를 구하고(아래이미지참조) 히스토그램을 구하시오
#분할 구간 List
ten = np.arange(0,101,10)
ten
# 도수분포표
kor_cut = pd.cut(sr['국어점수'], ten, right=False)
kor_cut.value_counts()
#히스토그램
plt.hist(sr['국어점수'], bins=ten, rwidth = 0.8)

#히스토그램 다른 풀이
sr.plot(kind='hist', bins=list(range(0,101,10)))


#9. 과일의 비율을 파이차트로 그리시오
fruit.plot(kind='pie',figsize=(10,7), autopct='%.1f%%', fontsize=15)

아래의 사이트를 참고하였습니다.
https://makeit.tistory.com/119?category=904614

👀Review

#문제8. 히스토그램

코드의 오류나 수정사항은 댓글로 남겨주시면 감사하겠습니다.

0개의 댓글