본문 바로가기

배우기/복습노트[Python과 분석]

[실습문제] 2024. 1. 17.(수) (2문제)

728x90
반응형

1. multi_index_ex2.csv 파일을 읽고

 

1) 멀티 인덱스, 멀티 컬럼 설정

 

index 설정)

 

Unnamed:0 컬럼을 보면, 1_A, 1_B, 1_C, 2_A, 2_B, 2_C, ....  이렇게 자료가 있다.

이를 1을 상위레벨, A, B, C를 하위레벨로 바꿀 수 있을 것이다.

 

그렇다면 1과 알파벳을 우선 분리하여보자.

 

위처럼 분리하면 TypeError: 'float' object is not subscriptable 이라는 에러메시지가 뜬다.

이는 거의 NA 때문에 나오는 오류이다. NA는 float 타입이기 때문이다. 

if문을 써서 NA일 경우 무시하는 것도 좋지만 어차피 없앨 컬럼이기 때문에 NA도 문자열로 바꿔버린 후 처리하자.

 

위에서 구분한 a1, a2를 멀티 인덱스로 설정하고 이름은 지정하지 않았다.

 

 

다음 Unnamed: 0 컬럼을 삭제한다.

 

 

 

 

column 설정

컬럼은 위와 같이 설정되어있다.

공백이 있는 경우를 NA로 치환하고, 지역명은 그대로 살리도록 하겠다.

 

이렇게 변경할 수 있다.

그럼 뒤의 nan을 지역명으로 채운 후 컬럼 지정을 하겠다.

 

Series로 덮지 않고 ffill 하는 경우는 에러가 난다.

index object에서는 직접 ffill 메서드 호출 불가이며 fillna(method = 'ffill') 메서드도 호출 불가하다.

 

 

위처럼 멀티레벨 컬럼을 지정할 수 있다.

위의 데이터 프레임을 정리해보자.

 

 

멀티 컬럼의 경우 이름 변경 시 names로 동시에 변경하여야 한다.

 

데이터 안에 결측치도 있어서 결측치도 NA로 바꾸겠다.

 

 

2) A 지점의 월요일 판매량 출력

 

 

 

 

 

3) 월별 지점별 매출 총 합 출력

 

풀어서 보면 다음과 같다.

 

 

반응형

 

 

2. employment.csv 파일을 읽고

 

 

index 설정

 

 

 

column 설정

이 컬럼은 연도로만 정리하고,

 

 

이 셀 내용은 괄호 안의 내용은 제외하여 멀티컬럼으로 만들어두자.

 

 

 

위와 같이 정리하였다.

 

여기까지 한번 더 정리.

 

 

 

 

 

1) 결측치 처리

'-' 값들을 NA로 치환하도록 하겠다.

 

 

 

 

2) 고용형태별 총 근로일수 평균 출력

 

 

 

3) 각 연도별 월급여액이 가장 많은 고용형태 확인

 

쉬운 방법이 있긴 하나 아직 배우지 않았으므로 일단 배운 내용을 기반으로 하여 풀어보겠다.

 

쉼표를 제거하고 숫자 타입으로 변경하여야겠다.

 

 

이렇게 하면 가장 큰 값 추출이 가능하며,

 

 

뒤에 index 메서드를 붙여주면 index만 리스트 형태로 출력이 된다.

이 과정을 모든 컬럼마다 반복하여야 한다.

 

 

데이터 프레임의 형태로 출력이 된다.

컬럼 하나 하나씩 추출하면 스칼라로 나오며, 전체 적용하면 시리즈가 나와야 하는데 데이터프레임이 출력된 이유는

f2 함수 출력 결과가 1차원이기 때문이다.

 

스칼라로 출력되게 하기 위해서는 index[0]을 붙여 출력하면 되겠다.

이렇게 하면 시리즈로 출력이 된다.

 

 

 

3) 문제를 쉽게 푸는 방법을 소개하도록 하겠다.

wide data에서의 최대/최소 index값 추출: idxmax, idxmin

 

 

 

 

 

 

 

 

 

** 참고 : 문자열의 구성 확인(문자열 확인 함수) is ~

 

isalnum : 문자 또는 숫자로 되어 있는지 확인

 

 

 

 

isnumeric : 문자인데 숫자로만 구성되어있는지 확인

 

 

 

 

 

NA 찾기는 안됨. 오류

 

이렇게는 가능

 

728x90
반응형