본문 바로가기

728x90
반응형

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

(107)
[복습] 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임 예제) 아래 데이터에 대해 각각 행별/열별..
[복습] Python 조건문 파이썬에서 조건문은 조건의 결과가 참인지 거짓인지에 따른 연산/명령 처리를 다르게 할 때 사용한다. 1. if 문 - 동시에 여러 논리값의 전달이 불가함(여러 원소에 대한 조건 검사 불가) → 그래서 항상 반복문과 함께 사용됨 문법 if 조건 : 참일때리턴 else : 거짓일때리턴 if 조건1 : 조건1참일때리턴 elif 조건2: 조건2참일때리턴 else : 모든 조건이 거짓일 때 리턴 예) 다음의 값이 5보다 큰 경우 A, 작거나 같은 경우 B s1= Series([1, 2, 10, 8]) 이런 식은 불가하다. 반복문과 함께 사용하여야 한다. 2. np.where - 벡터화 내장된 if 문 기능 - 원소별 반복 if문 적용 가능 - R의 ifelse문과 유사 문법 np.where(조건, 참리턴, 거짓리..
[실습문제] 2024. 1. 11.(목) (4문제) 1. professor.csv 파일을 불러온 뒤 다음을 수행하여라(컬럼명은 제외) 1) 입사연도가 1990년 이전인 교수는 PAY의 15% 인상, 90년 포함 이후인 경우는 10% 인상하여 출력 pro.columns 는 pro라는 데이터프레임에 어떤 컬럼이 있는지 확인할 수 있는 메서드이다. 저 중에서 입사연도와 급여인 HIREDATE와 PAY를 추출할 것이다. 이렇게 하면 Series 자료구조로 추출이 된다. 첫 번째 print 방식은 문자열 색인이 아니다. 시리즈 자료구조에서는 네 개의 행이 추출이 된다. 그러므로 하나의 자료를 추출한 뒤에 거기서 문자열 색인을 하면 1980이라는 문자열 추출이 가능하다. 이걸 함수로 적용하여 보자. 위와 같이 쓰면 이상한 답이 출력이 된다. PAY를 하나하나 리턴받..
[복습] Python 적용함수(map함수, map메서드, applymap) (2) https://metime.tistory.com/243 위에서는 간단히 적용함수에 대해 알아보았고 오늘은 map함수와 map메서드에 대하여 공부하였다. 1. map 함수 2. map 메서드 - 1차원 객체의 원소별 적용 - Series에서만 직접 호출 가능함 - 여러 객체 동시에 fetch불가함(대상이 맨 앞으로 빠지므로), 즉 하나의 객체만 fetch 가능 s1.map 이런식으로 대상 객체가 맨 앞에 빠지므로 그 해당 객체만 fetch가 가능함. 사용법 s1.map(func) 예제) professor.csv 파일을 읽고 이메일 아이디를 추출하여라. split은 문자에만 바로 적용이 가능하다. 아래와 같이 적용하는 경우 에러메시지를 잘 읽어보자. Series는 split이 적용이 되지 않는다는 메시지가 ..

728x90
반응형