본문 바로가기

Code Snippets

(9)
[파이썬] 리스트에서 중복 값을 제거하는 2가지 방법 데이터 전처리 중 가장 자주 나오는 유형이 '중복된 값 제거'이다. 리스트에서 중복 값을 제거하는 2가지 방법이 있는데, 보통 이 중 첫번째 방법만 안다. 방법 1 : Set으로 전환한 후, 다시 리스트로 바꾸기 파이썬 자료형 중 Set을 이용한 방법이다. 중복 자료를 허용하지 않는 집합 자료형(Set)의 특징을 이용한 것이다. ## 방법 1) set으로 바꾼 후 다시 list로 변환 duplicate_list = ['안','녕','하','세','요','세','요'] cleaned_list = list(set(duplicate_list)) 하지만 집합 자료형은 중복 자료도 허용하지 않고, 자료 순서도 고려하지 않는다. 그래서 리스트의 원래 순서가 유지되지 않는 경우가 많다. 방법 2: dict.fromk..
개발/IT 유튜브 채널 분야별 추천 (영어) 개발을 배우기에 가장 좋은 자료는 어디에 있을까? 친구가 이런 질문을 한다면 주저하지 않고 이렇게 답할 것이다. "모든 자료는 유튜브에 있다." 이번 글에서는 그동안 개발/데이터 분석 공부를 하면서 참고했던, 그리고 지금도 참고하고 있는 유튜브 채널들을 소개해본다. 여기서 소개되는 모든 채널의 공통점이 3가지가 있다. 1. 그 어떤 유료컨텐츠/강의에도 비견되는 퀄리티 - "이런 퀄리티의 강의가 무료라니??" 라는 놀라움과 감사함을 준 채널들만 골랐다. 2. 언어는 영어 이번 글을 정리하면서 다시 한번 영어의 중요성을 느낀다. 영어로 접할 수 있는 자료의 양과 질은 한글 자료와는 비교가 되지 않는 것 같다. 아래에 소개되는 채널의 영어는 전혀 어려운 수준이 아니고 고등교육을 이수한 사람이라면 누구나 이해할..
[구글 시트] 구글 설문 체크박스 데이터 전처리/시각화 구글 설문의 체크박스 응답내용을 구글시트에서 차트로 표현하고 싶을 때가 있다. 구글 설문 응답내용을 구글시트에서 관리하고 있어서, 체크박스 응답내용도 같이 관리하고 싶을 때가 이런 경우다. 체크박스 응답내용의 특징은 객관식과 다르게 복수 응답이 가능하다는 것이다. 복수 응답을 하면 구글 시트에는 다음과 같이 ","로 구분되어 하나의 셀에 표시된다. 이처럼 복수응답이 가능한 체크박스 문항의 경우 각 응답항목별로 수치가 어떻게 되는지 확인하기 위해서는 약간의 전처리가 필요하다. 전처리 후에는 구글설문에서 바로 확인가능한 차트를 구글시트에서도 구현할 수 있다. 1. 보조시트를 만들기 구글설문 응답결과를 스프레드시트로 확인하는 경우 설문 응답용 시트가 만들어진다. (시트 명은 "설문지 응답 시트1") 하지만 열..
[구글 시트] 신규 추가 행에 vlookup 적용하기 (Arrayformula) 시트에 vlookup을 적용할 때 행이 새롭게 추가되면 다시 vlookup을 적용해야 하는 번거로움이 있다. 구글시트에서는 이런 번거로움을 해결하기 위한 강력한 함수가 있는데, Arrayformula 함수이다. 위와 같은 상황에서 Arrayformula를 사용할 경우 행이 추가되면 vlookup도 그대로 적용이 된다. Vlookup을 Arrayformula + Vlookup으로 바꾸는 방법 1. 원래의 vlookup 함수를 arrayformula ()로 감싸준다. 2. vlookup에서 첫번째 입력값을 열 전체로 바꿔준다. (원래 처음에는 K5였는데, 이를 K5:K이라는 열 전체 범위로 바꿔준다) 3. 새롭게 추가되는 행의 #N/A가 거슬린다면, IFNA 함수를 추가하여, #N/A일 때는 공백("")이 ..
[구글 시트] 메일 머지 (Mail Merge) 로 타겟팅 메일 발송하기 구글시트를 이용하면 메일 머지로 타겟팅 메일을 수월하게 보낼 수 있다. 메일머지는 대량으로 메일을 보내는 것인데 수신인별로 내용을 달리해서 타겟팅 메일을 보내는 방식이다. 예를 들어 메일마다 제목의 대표자 병, 회사 명, 프로모션 코드를 달리해서 보낼 수 있다. 1. 메일머지 탬플릿 사본 만들기 아래 링크에서 메일머지 탬플렛 사본을 만들어 준다. https://docs.google.com/spreadsheets/d/1EfjLuYGab8Xt8wCn4IokBIG0_W4tBtiU4vxl3Y7FPsA/copy 2. 메일머지 항목 설정 사본을 만들면 아래와 같은 시트가 생성이 된다. 여기서 각 열 (First name, Last name ... ) 등은 메일마다 다르게 설정할 수 있는 항목이다. 내가 원하는 열을..
[구글 시트] 새로운 시트 빠르게 생성하기 2 가지 팁 새로운 시트를 가장 빠르게 빠르게 만드는 2가지 방법을 소개한다. 1. 크롬에서 만들기 URL에 sheet.new라고 입력하기 sheet.new 라고 입력하고, 엔터를 치면 바로 새로운 시트가 생성이 된다. 2. 구글 드라이브에서 만들기 드라이브에서 내가 원하는 폴더로 이동한 후, Shift + S를 누르면 바로 생성이 된다.
[구글 시트] 사본 만들기 링크 공유하기 (및 주의 사항) 구글 시트를 공유할 때 시트 자체보다는 사본을 공유하고 싶을 때가 있다. 아래와 같은 화면처럼 말이다. 링크를 공유하면 사본 만들기 화면이 바로 나오도록 해서, 사본 공유가 쉬운 방법을 소개한다. 1. 우측 상단의 공유 버튼 클릭 2. 링크보기를 클릭한 후, 오른쪽에는 '뷰어'로 되어 있는 것을 확인한 후 '링크 복사' 클릭 3. 복사된 링크에서 edit 부분을 copy로 수정 4. 수정된 링크를 공유하기 주의 사항 링크 보기를 클릭했을 때 "뷰어" 말고 "편집자"를 선택하는 경우, 편집까지도 가능한 url 링크가 생성된다. 이 경우 edit 부분을 copy로 수정했더라도, 사용자가 임의로 copy 부분을 다시 edit으로 수정해서 접속할 경우 원래의 파일을 바로 수정할 수 있게 된다. 이런 경우를 미리..
[파이썬-Pyautogui] 사용자가 직접 마우스 위치 설정하기 Pyautogui를 이용하여 마우스 클릭 매크로를 만들다 보면 한가지 어려운 점이 발생한다. 이 매크로를 사용하는 사용자마다 컴퓨터 모니터나 해상도가 달라서, 어떤 버튼이 위치한 x좌표와 y좌표를 고정시키기가 어렵다. 그래서 그 버튼의 위치를 opencv를 연동한 screenshot 기능으로도 찾을 수 있지만, 실제로 사용해보니 정확도가 많이 낮다. 그보다는 사용자가 직접 매크로를 사용하기 전, 특정 버튼의 위치를 저장할 수 있도록 하는 함수를 만들어 보는게 좋을 것 같다는 생각에서 아래와 같이 만들어 보았다. import pyautogui import time def save_locations(): message = "마우스 초기 설정을 시작합니다. 우측 상단의 카메라에 마우스를 위치합니다 (5초 후 ..
[파이썬-셀레니움] 셀레니움 속도 향상을 위한 5가지 팁 셀레니움으로 크롤링을 하다 보면 보다 빠르게 크롤링을 하고 싶을 때가 있다. 이 경우 아래 5가지 팁을 활용하면 속도를 향상시킬 수 있다. 1. 드라이버를 Headless로 만들기 셀레니움을 그냥 작동시키면 브라우져가 새로운 창에서 열리는 것을 볼 수 있다. 이 창이 없는 상태로 셀레니움이 돌아가는 것을 'Headless'라고 하는데, 이렇게 설정하면 속도를 향상시킬 수 있다. from selenium.webdriver.chrome.options import Options chrome_options = Options() # headless 설정 chrome_options.headless = True 2. Pageload Strategy 설정 변경 셀레니움 드라이버의 설정에서 Pageload strateg..