본문 바로가기
728x90
반응형

배우기265

[실습문제] 2024. 1. 16.(화) (3문제) 1. apply_test2.csv 파일을 읽고 각 지점(a~d)별 평균을 구하되, 각 결측치 값은 해당 기간의 최소값으로 대치 후 처리하여라 해당 파일을 처리하기 위하여 name을 index로 처리하고 index를 지우겠다. (본 문제에서 name은 상관 없는 컬럼이므로) 이런 상태로 만들었다. STEP 1) 천 단위 구분기호 삭제 STEP 2) 숫자 변환 시도(astype) → 결측치 처리 대상 확인 sol1) 결측치 처리할 값을 모를 때 → 하나씩 치환 Value Error : invaild literal for int() with base 10 : ' - ' 라는 에러가 뜬다. - 라는 문자가 삽입되어 있다는 의미이다. 문제에서 결측치는 해당 기간의 최소값으로 지정하라고 했으나 일단 NA로 치환해두.. 2024. 1. 17.
[복습] Python fillna (NA치환) emp.fillna(value, method, axis = 0) 위와 같은 데이터프레임을 설정하자. 1) 특정 값으로의 치환 모든 NA에 같은 값을 치환하려면 위와 같은 방법을 취하면 된다. 2) 컬럼별 서로 다른 값으로 치환 위와 같은 방법으로 진행하면 각 컬럼별 치환값을 서로 다르게 전달할 수 있다. 3) 이전/이후 값 치환 axis = 0이므로 method = 'ffill' 옵션을 사용하면 이전 행의 값을 가져온다. 즉 이전 행의 값으로 치환된다. method = 'bfill' 옵션을 사용하면 이후 행의 값으로 치환된다. 위 데이터프레임은 이후 값을 가져올 것이 없어서 치환이 되지 않았다. axis = 1 이므로 이후 컬럼의 값으로 치환된다. 연습문제를 풀어보자. subway2.csv 파일을 읽고 .. 2024. 1. 16.
[복습] Python dropna 메서드(NA를 포함한 행/컬럼 제거) emp.dropna(axis = 0, # 제거방향(0: 행 제거, 1: 컬럼 제거) how = 'any', # NA 제거 방식 ↔ all thresh, # NA수 제한 subset) # NA 체크할 대상 전달 먼저 dropna 메서드 테스트를 위한 아래와 같은 데이터프레임을 셋팅하여보자. df_na.dropna()를 하면 모든 행이 NA를 포함하고 있으므로 아래와 같이 전체 행이 제거가 된다. how = 'any'로 설정되어 있기 때문에 모든 컬럼을 체크하여 NA가 하나라도 포함되어 있으면 해당 행을 제거해버리기 때문이다. how = 'all' 옵션을 주면 모든 값이 NA로 구성된 행만 제거가 된다. subset = 'E' 옵션을 주게 되면 E 컬럼을 체크하여 E컬럼에 NA가 포함된 행을 제거한다. 여러.. 2024. 1. 16.
[복습] Python numpy / pandas 수학통계 함수(메서드) 차이 1. 분산/표준편차 기본 수식 차이 다음과 같이 변수가 선언되었다. numpy로 분산을 구한 것과 pandas에서 분산을 구한 값이 다르다. 그 이유는 numpy는 수학적 분산을 구한 것이고 (편차 제곱의 합을 n으로 나눔), pandas는 통계적 분산을 구한 것이다(편차 제곱의 합을 n-1로 나눔). 따라서 분석기사에서 분산을 구하려면 pandas의 값으로 구하여야 한다. 하지만 numpy에서도 통계적 분산을 구하는 방법이 있다. ddof 가 자유도 옵션인데 default가 0으로 되어있다. 따라서 이 옵션을 1로 넣어주면 통계적 분산을 구할 수 있다. 반대로 pandas에서도 수학적 분산을 구할 수 있다. 마찬가지로 자유도 옵션이 1이 default인데 0으로 바꿔주면 수학적 분산을 구할 수 있다. .. 2024. 1. 16.
[복습] Python 결측치 확인(isnan, isnull), 수정(fillna), 삭제(dropna) 결측치 - 잘못 입력되거나 연산된 값을 표현 - numpy에서 nan으로 표현 1. 확인 1) np.isnan 이런 데이터가 있다고 하자. s1에 isnan 함수를 사용하면 에러가 난다. s2에 isnan 함수를 사용하면 출력이 잘 된다. 이렇게 되는 이유는 isnan은 문자형 NA는 체크를 하지 못하며 숫자형 NA에 대해서만 체크가 가능하다. 참고로 NA는 Series 에서 실수 타입이지만 문자형과 같이 쓰이면 문자가 된다. 2) pd.isnull / isnull 메서드 pd.isnull은 문자형 NA에 대해서도 체크가 가능하다. 상수 하나에 대해서 NA를 체크하려면 pd.isnull()함수를 사용하여야 한다. NA.isnull은 에러가 난다. 데이터 프레임에 대해서 각 원소별 NA 값을 확인할 수 있.. 2024. 1. 16.
[복습] Python index / column 삭제(drop 메서드) df1.drop(labels, # 삭제할 이름(위치값 전달은 불가함) axis = 0, # 모든 axis는 0이 default. 삭제 방향 level = 0, # multi index의 level inplace = False) # False가 default. 원본을 대체할 것인지 여부. (원본 즉시 수정 여부) 위에서 level의 의미는 다음과 같다. 선생님 필기인데, A가 level = 0이고 , 2001, 2002가 level =1 이 된다. 글로 설명하기 어려워서 그림 첨부. 예) emp 에서 HIREDATE 컬럼 제거 예) emp에서 SCOTT 행 제거 drop에서 위치값 전달 불가인데 행삭제가 되는 이유는 index가 현재 이름이자 위치값이므로 전달이 가능한 것이다. 또는 아래와 같이 해결할 수.. 2024. 1. 16.
728x90
반응형