본문 바로가기
2학년 2학기/데이터 사이언스 입문

Week6 - 실습

by kkkkk1023 2024. 10. 10.

문제 풀이)

 

랜덤 정수 값을 이용해서 데이터를 만들어야하기 때문에, 행의 이름들과 열의 이름들을 따로 만들어주고 데이터 프레임을 제작해야했다.

따라서 반복문을 이용해서 rows, cols의 리스트를 생성하고, 아래의 생성 방식으로 데이터 프레임을 생성하였다.

 

df = pd.DataFrame(데이터 프레임의 데이터, index = '행의 이름들', columns = '열의 이름들')

 

 

 


 

문제 풀이)

 

 

axis = 1은 열끼리의 연산을 진행하는 것이다. 즉, C1, C2 ... C10까지의 연산이다. 따라서 각 행의 열들의 값의 평균을 구하고 'mean'이름의 열에 평균들을 추가했다.

 

 


 

 

 

우선 pass 컬럼을 만들고 모두 Y로 초기화주었다.

그리고 이중 반복문을 이용해서 각 행을 인덱싱하고, 해당 행의 각 열을 40과 비교하고 하나라고 40보다 작은 경우 Pass에 N을 추가했다.

또한, 각 행의 mean 컬럼의 값이 60보다 작은 값이라면 Pass에 N을 추가했다.

 

따라서, Y를 가지는 행은 각 열들의 값이 40 이상이고, 각 열들의 평균이 60이상인 값을 가진 행들이다.

 


 

 

 

 

 

 

cols를 반복문으로 돌리면서 df 데이터 프레임에서 각 열들이 10이 넘지않는 행, col 구역에 NaN 값으로 설정한다.

예를 들어 col의 값이 C1인 경우, [df[C1] > 0, C1]인 구역에 NaN 값을 저장한다. 

 

그리고 dropa()을 이용해서 NaN을 가진 행들을 삭제시킨다.