목록전체 글 (150)
Just Fighting
BeautifulSoup을 이용한 웹 크롤링을 했을 때, 잘 되지 않는 부분을 해결하기 위해 Selenium을 사용해 크롤링을 해보았다. BeautifulSoup을 이용한 크롤링 링크 ▼ 2022.01.12 - [Web/백엔드] - 웹 크롤링하기 from selenium import webdriver search_url = "크롤링할 사이트 url" browser = webdriver.Chrome('크롬드라이버 위치') # chromedriver 다운받고, 다운 받은 경로 써주어야함 browser.get(search_url) browser.implicitly_wait(2) ''' 크롤링 코드 ''' browser.close() 이 코드가 틀이되는 코드라고 할 수 있다. 크롬드라이버를 다운받고, 크롤링할 ..
데이터를 위아래로 연결하고 싶을 때 사용한다. 즉, 데이터들의 컬럼이 같고, 행을 추가하는 방식이다. import pandas as pd pd.concat([데이터1, 데이터2, 데이터3]) 데이터를 특정 컬럼을 기준으로 옆으로 합치고 싶을 때 사용한다. pd.merge(데이터1, 데이터2, on='컬럼', how='방법') pd.merge(데이터1, 데이터2, on=['컬럼1', '컬럼2', '컬럼3'], how='방법') # 데이터의 컬럼명이 다를 경우 사용 pd.merge(데이터1, 데이터2, left_on='컬럼1', right_on='컬럼1*', how='방법') 추후에,,
https://programmers.co.kr/learn/courses/30/lessons/12973 코딩테스트 연습 - 짝지어 제거하기 짝지어 제거하기는, 알파벳 소문자로 이루어진 문자열을 가지고 시작합니다. 먼저 문자열에서 같은 알파벳이 2개 붙어 있는 짝을 찾습니다. 그다음, 그 둘을 제거한 뒤, 앞뒤로 문자열을 이어 붙 programmers.co.kr 주어진 문자열에서 알파벳이 같은 두 문자열 짝을 찾아 제거한다. 그리고 남은 문자열을 합치고, 제거하는 과정을 반복한다. 마지막에 문자열을 모두 제거하면 1을 리턴하고, 그렇지 않으면 0을 리턴한다. 처음에 중복된 문자열을 제거한다고 해서 정규표현식이 떠올랐다. 그래서 열심히 찾아보고 문제를 풀어봤는데 아무래도 시..
https://programmers.co.kr/learn/courses/30/lessons/42586 코딩테스트 연습 - 기능개발 프로그래머스 팀에서는 기능 개선 작업을 수행 중입니다. 각 기능은 진도가 100%일 때 서비스에 반영할 수 있습니다. 또, 각 기능의 개발속도는 모두 다르기 때문에 뒤에 있는 기능이 앞에 있는 programmers.co.kr 기능개선작업을 하고 있다. 각 기능은 진도가 100퍼센트일 때 서비스에 반영할 수 있다. progresses는 진도를 의미하고, speeds는 하루의 개발 속도를 의미한다. 뒤에 있는 기능은 앞에 있는 기능의 진도가 다 끝났을 때 함께 배포된다. 배포는 하루에 한 번이고, 각 배포마다 몇개의 기능이 배포되는지 배열에 담아 리턴해라. < ..
https://programmers.co.kr/learn/courses/30/lessons/12899 코딩테스트 연습 - 124 나라의 숫자 programmers.co.kr 숫자를 이런식으로 표현하는 나라가 있다. 주어진 숫자 n을 124 나라 식으로 바꿔서 리턴해라. 먼저 규칙을 찾았다. 1 -> 1 2 -> 2 3 -> 3 4 -> 3 * 1 + 1 5 -> 3 * 1 + 2 6 -> 3 * 1 + 3 7 -> 3 * 2 + 1 8 -> 3 * 2 + 2 9 -> 3 * 2 + 3 10 -> 3 * 3 + 1 11 -> 3 * 3 + 2 12 -> 3 * 3 + 3 반복되는 패턴을 찾자면 3개씩 끊어서 생각할 수 있다. 123이 계속 반복되는 구조. 그래서 2진법을..
https://programmers.co.kr/learn/courses/30/lessons/62048 코딩테스트 연습 - 멀쩡한 사각형 가로 길이가 Wcm, 세로 길이가 Hcm인 직사각형 종이가 있습니다. 종이에는 가로, 세로 방향과 평행하게 격자 형태로 선이 그어져 있으며, 모든 격자칸은 1cm x 1cm 크기입니다. 이 종이를 격자 선을 programmers.co.kr 가로 Wcm, 세로 Hcm인 직사각형 종이가 있고, 1x1cm인 격자가 그려져 있다. 격자를 따라 1x1cm인 정사각형으로 잘라 이용하려고 했는데, 종이가 대각선으로 잘려 있다. 이 때, 사용할 수 있는 정사각형의 개수를 구하여라. 처음에는 예시만 보고 단순하게 세로줄 하나에 (h/w의 올림한 값)과 같은 개수의 사각형을 사용하지 못한..
데이터 분석을 하기 위해 데이터의 구조를 변경해야할 때 melt와 pivot 함수를 사용하면된다. 처음에 검색 안하고 혼자 해보려다가 아주 시간 낭비했다*^^* 가로의 데이터를 세로로 바꾸는 함수이다. 컬럼명을 값으로 바꿔서 아래로 데이터를 줄세우는 방식이다. 데이터프레임.melt(id_vars=기준컬럼, value_vars=기존컬럼, var_name=컬럼의컬럼명, value_name=값의컬럼명) 이 함수는 melt()와 정반대인 함수로, 세로로 된 데이터를 가로로 바꾸어주는 함수이다. 데이터프레임.pivot(index=기준컬럼, columns=컬럼이될컬럼, values=값이될컬럼)
저번에 다양한 데이터 타입과 라이브러리로 막대 그래프를 그리는 방법을 정리했었다. 2022.01.27 - [Statistics/Python] - 데이터 타입 별 barplot 그리기 이번에는 matplotlib의 다양한 함수들을 이용하여 막대그래프가 아닌 다른 그래프들을 그리는 방법을 정리하고자 한다. 먼저 라이브러리를 import 해준다. 그리고 그래프에 한글을 넣기 위해서 아래 코드도 필요하다. import matplotlib.pyplot as plt import matplotlib # 한글깨지는 현상 해결 matplotlib.rcParams['font.family'] ='Malgun Gothic' matplotlib.rcParams['axes.unicode_minus'] =False plt.plot..
딕셔너리는 sort()로 정렬할 수 없으며, sorted()함수를 사용하여 정렬한다. key 리스트 반환 ① key 기준으로 정렬 dic = {'A':1, 'C':4, 'B':2, 'D':3} dic2 = sorted(dic) ② value 기준으로 정렬 dic = {'A':1, 'C':4, 'B':2} dic2 = sorted(dic, key = lambda x : dic[x]) items() 이용한 정렬 ① key 기준 정렬 dic = {'A':1, 'B':3, 'C':2} dic1 = sorted(dic.items())# 리스트 dic2 = dict(sorted(dic.items()))# 딕셔너리 단, sorted는 list를 반환하기 때문에 딕셔너리를 만들고 싶다면 dict()를 사용해야함. ② ..
https://programmers.co.kr/learn/courses/30/lessons/42889 코딩테스트 연습 - 실패율 실패율 슈퍼 게임 개발자 오렐리는 큰 고민에 빠졌다. 그녀가 만든 프랜즈 오천성이 대성공을 거뒀지만, 요즘 신규 사용자의 수가 급감한 것이다. 원인은 신규 사용자와 기존 사용자 사이에 스 programmers.co.kr 스테이지의 개수 N과 게임 이용자가 현재 머물러 있는 스테이지가 담긴 배열 stages가 매개변수로 주어진다. 이를 이용해 각 스테이지마다의 실패율을 구하고, 실패율이 높은 순서로 스테이지의 번호를 배열에 담아 리턴한다. stages에 N+1은 스테이지 N을 통과했다는 의미. 실패율이 같다면 스테이지 번호가 낮은 순서가 먼저. 스테이지에 도달한 사람이 아무도 없..