본문 바로가기

728x90
반응형

분류 전체보기

(315)
[복습] Python numpy / pandas 수학통계 함수(메서드) 차이 1. 분산/표준편차 기본 수식 차이 다음과 같이 변수가 선언되었다. numpy로 분산을 구한 것과 pandas에서 분산을 구한 값이 다르다. 그 이유는 numpy는 수학적 분산을 구한 것이고 (편차 제곱의 합을 n으로 나눔), pandas는 통계적 분산을 구한 것이다(편차 제곱의 합을 n-1로 나눔). 따라서 분석기사에서 분산을 구하려면 pandas의 값으로 구하여야 한다. 하지만 numpy에서도 통계적 분산을 구하는 방법이 있다. ddof 가 자유도 옵션인데 default가 0으로 되어있다. 따라서 이 옵션을 1로 넣어주면 통계적 분산을 구할 수 있다. 반대로 pandas에서도 수학적 분산을 구할 수 있다. 마찬가지로 자유도 옵션이 1이 default인데 0으로 바꿔주면 수학적 분산을 구할 수 있다. ..
[복습] 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 값을 확인할 수 있..
[복습] 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가 현재 이름이자 위치값이므로 전달이 가능한 것이다. 또는 아래와 같이 해결할 수..
[복습] Python index object 수정(rename 메서드) index object 수정(rename 메서드) - index object : 행의 정보(index), 컬럼 정보(columns) - pandas에서는 index object 라는 자료구조를 따로 생성 - 일부 수정 불가(read-only 객체) - Series 자료구조와는 다른 자료구조이므로 Series에서 호출가능한 메서드가 호출되지 않을 수 있음 예) 아래 데이터프레임 마지막 컬럼을 60세이상 으로 수정하여라 type를 해보면 index 객체라고 출력이 된다. index나 column을 덮어 쓰는 것은 가능하지만 위처럼 일부 수정은 불가하다(read-only 객체이기 때문). 덮어쓰는 것은 변수 재생성 의미이므로 가능한 것이다. 해결 1) index object 가 아닌 상태에서 수정 후 다시 덮..
[실습문제] 2024. 1. 15.(월) (2문제) 1. student.csv 파일을 읽고 1) 1, 2학년 학생의 몸무게의 평균 출력 2) ID 컬럼에 숫자 0을 포함하는 사람의 이름, ID, 학년 출력 먼저 스칼라 테스트이다. map + lambda로 하나씩 fetch해주므로 따라서, 2. test3.txt 파일을 읽고 1) 다음과 같은 데이터프레임 형태로 변경 20대 30대 40대 50대 60세이상 2000년 7.5 3.6 3.5 3.3 1.5 2001년 7.4 3.2 3.0 2.8 1.2 2002년 6.6 2.9 2.0 2.0 1.1 .......................................................... 2011년 7.4 3.4 2.1 2.1 2.7 2012년 7.5 3.0 2.1 2.1 2.5 2013년 7.9 ..
[복습] Python 수학/통계 함수 및 메서드 , 누적 연습문제(5문제) 포함 1. 기본함수 round(1.23) # 스칼라에 대해서만 연산이 가능함 round([1.23, 2.45]) # 여러 개의 연산은 불가함(스칼라에 대해서만 연산 가능) 2. math / statistics 모듈 함수 / 메서드 import math dir(math) 그러나 math.trunc([1.23, 2.45]) 또한 불가하다. 스칼라에 대해서만 연산이 가능하다. 기본이나 math 모듈에서 제공하는 함수들은 벡터 연산 기능을 가지고 있지 않다. 그래서 여러 개에 대한 동시 처리가 불가하다. 3. numpy / pandas 모듈 함수 / 메서드(벡터 연산 가능) - 벡터 연산 가능 - 축 전달 가능(axis) 몇 개를 테스트 해보자. 그러나 pd.round(1.23)은 불가하다. pd에서는 round를 ..
[복습] Python 형 변환 함수 / 메서드 형 변환 함수 / 메서드 - 문자 → 숫자 - 숫자 → 문자 등의 데이터 타입 변경 1. 형 변환 함수 - 기본 제공(스칼라에만 적용 가능) - str, int, float (날짜변환 함수는 없음) 스칼라에 대하여 위와 같이 형 변환이 가능하다. 그러나 int(['1', '2']) 또는 int(Series ['1', '2'] ) 처럼은 불가하다. 즉 리스트나 시리즈에 대한 형 변환은 불가하다. 2. 형 변환 메서드 - numpy, pandas 에서 제공(array, Series, DataFrame) - 여러 값을 갖는 객체에 전체 적용 - astype('int') 예) 아래 시리즈를 숫자로 형 변환하여라. s1 = Series(['1', '2', '3']) int(s1)은 불가능하다. 다음과 같이 두 가..
[복습] Python 자료구조(3) (데이터프레임) 1. 생성 데이터 프레임 생성 방법이다. 위 방법은 에러가 난다. ValueError : All arrays must be of the same length. 즉 length가 다른 데이터프레임은 구성이 되지 않는다. 각 key 길이가 같아야 한다. 이렇게 key 길이가 같아야 생성이 된다. 이렇게도 데이터프레임이 생성이 된다. 2. 중요 메서드 dtypes 메서드를 사용하면 각 컬럼 별 데이터 타입을 확인할 수 있다. 위 데이터프레임은 a컬럼 b컬럼 모두 interger로 구성되어있다. shape 메서드를 사용하면 n x m 의 형태를 알 수 있으며 (3, 2)로 출력되는 것을 보아 3행 2열 구조이다. 따라서 데이터 프레임의 행을 출력하기 위해서는 df1.shape[0] , 열을 출력하기 위해서는 d..
[실습문제] 2024. 1. 12.(금) (2문제) 1. 연령별실업율_40-49세.csv 파일을 읽고 뒤에 잘린 옵션은 encoding = 'cp949' 이다. 1) 월 컬럼의 값을 1월, 2월, 3월, ...., 12월로 변경 현재 월 컬럼이 이렇게 정의되어 있다. 두 가지 방법으로 풀이해보자. sol1) for sol2) map + lambda 2) 월컬럼을 인덱스로 설정 후, 모든 값에 대해 소수점 둘 째 자리로 표현하여 df2에 저장 set_index로 index 설정하는 방법은 외부 객체의 index는 불가하다. 아래와 같이 index 하는 방법도 있다. index 메서드를 활용하면 외부 객체도 index 설정이 가능하지만 이 방법은 위와 같이 정보의 중복이 발생한다. 따라서 중복된 컬럼을 삭제하여야 하므로 내부 자료를 이용한다면 첫 번째 방법으..
[복습] Python 적용함수(map함수, map메서드, applymap, apply) (3) 1. map 함수 - 1차원 원소별 반복 - 여러 객체 동시 fetch 가능 2. map 메서드 - 1차원 원소별 반복 - 하나의 객체(Series)만 fetch 가능 3. applymap 메서드 - 2차원 원소별 반복 문법 데이터프레임.applymap(적용함수) 예제) card_history.csv 파일에 대해 모든 컬럼을 숫자 컬럼으로 변경하여라 참고로 각 컬럼별 데이터타입 확인하는 방법은 card.dtypes 이다. 데이터프레임에서 string은 object로 표현된다. 4. apply - 2차원 행별/열별 적용 - axis와 함께 행별/열별 fetch에 대한 함수 적용을 도와줌 문법 데이터프레임.apply(적용함수, axis = 0) 0이 default임 예제) 아래 데이터에 대해 각각 행별/열별..

728x90
반응형