과제

[과제10]

とおき 2022. 5. 19. 17:38

아래와 같은 데이터들을 하나의 DataFrame으로 만들고(index는 labels 사용),

import pandas as pd
import numpy as np
exam_data = {'이름': ['정수현', '윤웅익', '우성호', '김복희', '홍길동', '임꺽정', '이창신', '김완', '최영규', '한범석'],
'점수': [12.5, 9, 16.5, np.nan, 9, 20, 14.5, np.nan, 8, 19],
'응시횟수': [1, 3, 2, 3, 2, 3, 1, 1, 2, 1],
'합격여부': ['yes', 'no', 'yes', 'no', 'no', 'yes', 'yes', 'no', 'no', 'yes']}
labels=list( 'abcdefghij' )
df = pd.DataFrame(exam_data, index=labels)

‘점수’ 에Missing data인 NaN값을 평균값(mean) 값으로 변경하는 코드를 작성하시오.

df.fillna(value=df.mean())

합격 여부가 yes인 사람과 no인 사람의 수를 출력하시오. 단 groupby()를 사용해 코드를 작성하시 오.

df.groupby('합격여부').count()

난수를 사용해서 서로 크기와 색깔의 값 25개의 산포도를 그리시오.

• 단, 색깔의 종류는 4가지로 하고, 점의 크기는 적절한 범위내에서 선택되도록 하시오. x, y 좌표는 0과 1 사이이다.

data = {'a': np.random.rand(25),
       'c': np.random.randint(0, 25, 25),
       'd':np.random.rand(25)}
data['b'] = data['a']*np.random.rand(25)
data['d'] = np.abs(data['d'])*300

plt.scatter('a','b', c='c', s='d', data=data)
plt.xlabel('x')
plt.ylabel('y')
plt.show()