반응형

Today I Learned/Python & Pandas 17

[Python] 날짜 다루기 - datetime module

문제 출처: programmers.co.kr/learn/courses/30/lessons/12901 코딩테스트 연습 - 2016년 2016년 1월 1일은 금요일입니다. 2016년 a월 b일은 무슨 요일일까요? 두 수 a ,b를 입력받아 2016년 a월 b일이 무슨 요일인지 리턴하는 함수, solution을 완성하세요. 요일의 이름은 일요일부터 토요일까�� programmers.co.kr 나의 풀이 date 모듈에서 date 함수와 strftime 함수를 이용함 date(2016, 1,1 ) -> datetype 으로 2016-01-01 리턴 strftime(원하는 형식) -> 앞의 날짜를 원하는 형태로 변환하여 출력 참고 문서 11.3 시간 다루기 | 파이썬 프로그래밍 입문서 (가제) 박연오가 도서출판 ..

[Python] List Comprehension

List Comprehension으로 할 수 있는 것 for문과 if문을 사용해서, 어떤 리스트안에서 특정 조건을 만족하는 리스트를 새로 구성할 수 있다. for문을 돌면서 if 문으로 조건을 검사해서 append() 함수로 값을 리스트에 추가하는 것과 동일한 역할을 하는데, 아주 간단하게 표현된다. input값 계산해서 list 만들기 두가지 방법은 output이 동일하다. # 방법1. for 문 s = [] for x in range(10): s.append(x ** 2) # 방법2. list comprehension s = [x ** 2 for x in range(10)] output: s = [0, 1, 4, 9, 16, 26, 36, 49, 64, 81] for 문 + if 문 한줄로 만들기 문..

[Pandas] categorical columns to numeric - get dummies()

전처리 과정중 하나로 컬럼 값이 categorical 타입일 때, 추후 편리한 연산을 위해 True or False (1 or 0) 값으로 변경해주는 것이 좋다. 하나의 컬럼안에 여러 중복 값이 있을 때 이를 유니크한 단위로 쪼개서 정리해줄 수 있는데, 아래 예시를 살펴보자 영화 데이터인데, 'genres' 컬럼을 보면, 한 컬럼안에 복수개의 장르가 들어가있는걸 볼 수 있다. 이런 데이터는 다루기 까다로우니, 전처리가 필요하다. 방법1. for 문 활용 1) unique genres 추출 2) genres unique list 활용해서 For 문으로, 각 row의 genres column에 해당 장르가 포함 되어있으면, True, 없으면 False 할당해서 새로운 컬럼 생성해줌 방법2. get_dummi..

[Python] Sort dict values in list

Checkio 문제 출처: https://py.checkio.org/mission/bigger-price/solve/ 문제 설명 dict타입을 가진 list에서 price가 높은 순서대로 limit 개수만큼 출력해라 예시) input: data, limit data = [ {"name": "bread", "price": 100}, {"name": "wine", "price": 138}, {"name": "meat", "price": 15}, {"name": "water", "price": 1} ] limit = 2 output [ {"name": "wine", "price": 138}, {"name": "bread", "price": 100} ] 내 풀이 dict를 dataframe으로 변경해서 풀어주기..

[Python] Strip()은 공백만 제거해주지 않는다.

checkio 문제 참고: https://py.checkio.org/mission/beginning-zeros/solve/ 문제 설명: 숫자로만 구성된 string에서 앞에 연속된 '0'이 몇개인가? EX. '0012' -> 2개 / '1000' -> 0개 / '0300' -> 1개 내 풀이 재귀호출 사용 (재귀호출 공부한 뒤로, 이런문제는 재귀호출로 풀게된다) 참고: 2020/09/18 - 파이썬 재귀호출로 반복문 줄이기 def beginning_zeros(number: str) -> int: # your code here if len(number) == 0 or number[0] != '0': return 0 if number[0] == '0': return 1 + beginning_zeros(num..

[Pandas] any(),all() 사용법과 예시

any(), all() 둘다 boolean(True or False) 값을 return 해주는 pandas의 내장함수이다. 데이터분석을 하다보면, 특정 값을 가진 행이 있는지 판별해야하는 경우가 있다. 그 특정값이 몇개가 있는지가 아니라 단순히 1개라도 있는지, 아니면 전체 행이 그 값을 가졌는지 여부를 판단해줄 때 any() 혹은 all()을 써줄 수 있다. 예시를 통해 확인해보자 1. Student Table 에 'hana'라는 이름을 가진 학생이 있는가? 2. Student Table 에 'zero'라는 이름을 가진 학생이 있는가? 3. Student Table 의 학생들중 남학생이 있는가? 4. Student Table 의 학생들은 전부다 여자인가? 이 함수는 조건문이랑 함께 사용하면 매우 편할 ..

[Pandas] column 순서 재배치하는 2가지 방법

데이터 프레임의 컬럼을 요리조리 다뤄보면서 알게 된 컬럼 순서 바꾸는 방법을 TIL로 남기려고 한다. 이렇게 컬럼이 많을 때 한눈에 들어오지 않는다. 위 이미지에서 3번째 컬럼에 있는 Salary Estimate 컬럼을 보면 연봉이 string 타입으로 작성되어 있어 연산이 어렵다. 그래서 salary_min, salary_max 컬럼을 생성하여 앞에 숫자와 뒤에 숫자를 각각 넣어주었다. 컬럼의 맨 오른쪽에 생성되어 있어서 스크롤을 해야 볼 수 있다. 그래서 이 새로만든 컬럼을 앞으로 재배치해주고 싶다. 방법1. 컬럼명 직접 써주기 df=df[['Job Title','salary_min', 'salary_max', 'Salary Estimate', 'Job Description', 'Rating', 'C..

반응형