파이썬 리스트 같은 원소값 가져오기파이썬에서 두 개 이상의 리스트에서 공통된 원소값만 추출하는 방법입니다.별 게 아닌데 막상 하면 막막할만해서 정리겸 포스팅합니다.for문 이용가장 쉬운 방법은 for문을 이용하는 방법입니다. 직관적으로 코딩을 만들기 좋습니다.list1 = [1, 2, 3, 4, 5]list2 = [4, 5, 6, 7, 8]common_list = []#for문 이용for i in list1: for j in list2: if i == j: common_list.append(j)# in을 활용for i in list1: if i in list2: common_list.append(i)i를 고정하고 j와 맞춰보고 일치한다면 i를 com..
판다스 데이터프레임 문자열 조건 검색법 총정리데이터프레임 문자열 조건 검색 방법을 모아봤습니다.일반적인 방법== 조건을 이용하는 방법이 가장 일반적입니다.import pandas as pd# 예제 데이터프레임 생성data = {'Name': ['Alice', 'Bob', 'Charlie', 'David'], 'Age': [24, 27, 22, 32], 'City': ['New York', 'Los Angeles', 'Chicago', 'Miami']}df = pd.DataFrame(data)## Los Angeles 찾기result_and = df[df['City'] == 'Los Angeles']print(result_and)하지만, ==을 사용하면 정확히 일치한..
win32clipboard를 이용한 클립보드 조작하기 파이썬의 win32clipboard Windows 운영 체제의 클립보드를 조작하는 모듈입니다. 다른 운영체제에서 안되는 것이 아쉽긴 하지만 이 모듈을 사용하면 파이썬 코드로 텍스트, 이미지 데이터를 클립보드에 복사하고 붙여넣을 수 있습니다. 이번 포스팅에서는 이미지 복사 붙여넣는 방법에 대해 쓰겠습니다. 텍스트도 마찬가지 방법으로 하면 되는데 pypercilp이 더 간단하기 때문에 pyperclip을 사용하시는 걸 추천드립니다. [파이썬] 클립보드 텍스트 복사 붙여넣기 win32clipboard 주요 기능 클립보드 열기 및 닫기: OpenClipboard()와 CloseClipboard() 메쏘드를 사용하여 클립보드를 열고 닫을 수 있습니다. 주의할 ..
클립보드 텍스트 복사 붙여넣기클립보드 조작은 자동화 프로그램을 만드는데 굉장히 중요한데요.pyperclip 라이브러리를 사용하면 텍스트 데이터를 클립보드에 복사하고 붙여넣을 수 있습니다. 문자열로 되는 건 다 가능합니다. 리스트에 문자열로 나열되어있어도 클립보드에 복사할 수 있습니다.텍스트 복사하기import pyperclip# 텍스트 복사하기text_to_copy = "Hello, World!"pyperclip.copy(text_to_copy)텍스트를 클립보드에 복사합니다.리스트의 텍스트를 복사하기import pyperclip# 리스트에서 텍스트 가져오기my_list = ["apple", "banana", "orange"]text_to_copy = "\n".join(my_list)# 클립보드에 텍스트 ..
pyautogui 키보드 제어 파이썬 모듈인 pyautogui를 통한 키보드 제어방법입니다. 키보드 제어는 원하는 키를 자동으로 입력하고 떼는 기능만이 전부라서 많은 지식이 필요하진 않습니다. pyautogui 키보드 기능 typewrite() : 키보드에 문자열 입력 press() : 단일 키를 누르고 뗀다 keyDown() : 키를 누르고 있는다. keyUp() : 키를 뗀다. hotkey() : 조합 키를 누른다. write() : typewrite() 와 유사하게 문자열 입력. import pyautogui ## 문자열 입력하기 pyautogui.typewrite('Hello.World!) ## 단일키 누르기 pyautogui.press('ctrl') ## 조합키 누르기 pyautogui.hotk..
Listener를 이용한 마우스 이벤트 리스너(listener)는 특정 이벤트가 발생할 때 프로그램은 해당 이벤트를 감지하고 움직이는 기능이 있는 이벤트 제어 도구입니다. Pyautogui는 이벤트 감지 기능이 없기 때문에 리스너와 함께 쓴다면 여러 시너지를 발휘할 수 있습니다. pynput 모듈에서 임포트할 수 있는데요. mouse와 keyboard가 따로 되어있는게 특징입니다. from pynput import mouse, keyboard mouse_listener = mouse.Listener(on_click=on_click) keyboard_listener = keyboard.Listnenr(on_click=on_click) 메쏘드는 단 3개 Listener에서 쓰는 메쏘드는 start(),joi..
pyautogui 마우스 제어pyautogui를 이용해 마우스 제어 하는 방법입니다. 다양한 방법이 있을줄 알지만 제가 아는 선에서 알려드릴까 합니다.마우스 컨트롤 기능pyautogui에서 제공하는 마우스 컨트롤 기능입니다. 이동, 클릭, 드래그 다 됩니다.moveTo(x,y,duration=None) : 지정된 좌표(x,y)로 마우스 이동move(x_offset=None,y_offset_=None,duration=None) : 현재 마우스 위치에서 상대적인 위치로 이동. x_offset,y_offset에 이동할 거리를 지정한다.click(x=None,y=None,clicks=1,interval=0.0,button='left',duration=None) : 마우스 클릭을 수행. interval을 이용해 ..
업무자동화 pyautogui 반복 작업이 많을 때 자동으로 작업을 알아서 해주면 그것만큼 편한게 없는데 키보드와 마우스 제어가 가능한 pyautogui를 사용하면 반복작업을 스스로 하는 매크로 프로그램을 만들 수 있습니다. 역사 Pyautogui는 2014년 소프트개발자 AI Sweigart(Automate the Boring Stuff with Python 책으로 유명하신 분) 에 의해 만들어졌습니다. 반복 작업을 자동화하기 위해서 만들어졌는데 현재 상당히 인기있는 모듈이 되었습니다. 설치방법도 간단합니다. 터미널에서 다음과 같이 입력하면 설치할 수 있습니다. pip install pyautogui pyautogui 기능 pyatugui의 주된 기능은 다음과 같습니다. 마우스 제어 : 마우스 커서를 이..
Matplotlib에서 figure와 axes를 직접 제어하는 방법과 간단한 사용법의 차이 Matplotlib는 그래프를 그릴 때 2가지 방법이 있습니다. figure와 axes를 직접 제어하느냐에 따라 방법이 달라집니다. 직접 제어하면 코딩이 약간 복잡해지지만 관리, 유지보수가 편해지고 그렇지 않으면 바로 그릴 수는 있지만 그래프 갯수가 많아지고 여러가지 스타일을 부여하면 복잡한 코딩이 될 수 있습니다. 간단한 사용법 figure와 axes를 제어하지 않는 방법입니다. 직관적으로 그림을 그릴 수 있습니다. 서브플롯 각각을 설정해서 그래프를 그립니다. import matplotlib.pyplot as plt import numpy as np # 데이터 생성 x = np.linspace(0, 2*np.pi..
Matplotlib으로 초간단 애니메이션 만들기 가장 접근하기 쉬운 matplotlib로 애니메이션 그림을 만드는 방법입니다. 애니메이션은 사실 여러가지 방법이 있을 걸로 아는데 초간단으로 만드는 방법 알려드리겠습니다. plt.pause를 이용하기 matplotlib에는 pause라는 정지 메쏘드가 있습니다. 내가 지정한 시간만큼 정지하고 다음 작업을 진행합니다. pause를 이용해 애니메이션처럼 만들 수 있는데요. for문과 함께 활용하면 쉽게 만들 수 있습니다. 예제로 랜덤으로 정수를 1000천 선택하고 그 선택한 정수를 하나씩 찍는 애니메이션을 만들어보겠습니다. import matplotlib.pyplot as plt import numpy as np import random x_values = [..
파이썬 절대값 출력하기 파이썬에서 절대값을 만드는 방법은 정말 많은 방법이 있는데요. 그 중 가장 많이 쓸만한 것으로 5가지 추려봤습니다. 1. 내장함수 abs() 함수 사용 num = -5 absolute_value = abs(num) print(absolute_value) # 출력: 5 2. numpy 배열인 경우 numpy에서는 절대값 메쏘드는 fabs()입니다. np.fabs(숫자)로 씁니다. import numpy as np num = np.array([5,-1]) absolute_value = np.fabs(num) print(absolute_value) # 출력: [5. 1.] 3. math 모듈을 이용한 방법 math 모듈에서도 numpy와 마찬가지로 fabs()함수를 씁니다. import..
동적 계획법이란? 동적 계획법(Dynamic Programming, DP)은 복잡한 문제를 간단한 여러 개의 하위 문제(subproblem)로 나누어 푸는 알고리즘 기법 중 하나입니다. DP는 부분 문제의 결과 값을 저장해놓고 재활용하여 전체 문제를 해결하는 방식으로 동작합니다. 동적 계획법의 조건 DP는 크게 2가지 조건을 만족해야 합니다. 작은 부분 문제들이 반복되어 나타나는 구조여야 합니다. 한 부분 문제에서의 정답이 다른 부분 문제에서의 정답을 결정하는 데 영향을 미쳐서는 안 됩니다. 동적 계획법의 절차 DP 알고리즘은 일반적으로 다음과 같이 세가지 절차를 따릅니다. 주어진 문제를 작은 부분 문제로 분할합니다. 부분 문제의 해결을 위해 이전 단계에서 구한 값을 저장하고 재귀로써 문제를 해결합니다...
교차표 만들기 판다스의 메쏘드중 하나인 crosstab을 이용해 교차표를 생성합니다. 주로 범주형 변수에 쓰이는데 시각적으로 표현하기 쉽게 만드는 점에서 은근 쓰이는 곳이 많습니다. crosstab() 사용방법 사용방법은 아주 간단합니다. 교차표를 만들 두개의 범주형 변수를 가져오면 그만입니다. # 예제 데이터 프레임 생성 data = {'A': ['one', 'one', 'two', 'three'] * 3, 'B': ['A', 'B', 'C'] * 4, 'C': ['foo', 'foo', 'foo', 'bar', 'bar', 'bar'] * 2, 'D': [1, 2, 2, 2, 1, 1, 3, 3, 3,1,2,3]} df = pd.DataFrame(data) # crosstab 생성 cross_tab ..
클래스 연결 메서드 오버라이딩(Method Overriding)은 객체 지향 프로그래밍에서 하위 클래스가 상위 클래스로부터 상속받은 메서드를 재정의하는 개념입니다. 이는 상속 관계에 있는 클래스 간에 동일한 메서드 이름을 사용하면서 각 클래스에서 특정 메서드의 동작을 변경하고자 할 때 사용됩니다. 메서드 오버라이딩의 주요 특징은 다음과 같습니다: 상속 관계 필요: 메서드 오버라이딩은 부모 클래스와 자식 클래스 간의 상속 관계에서만 발생합니다. 메서드 시그니처 동일: 오버라이딩되는 메서드는 메서드 시그니처(이름, 매개변수 형식, 반환 형식)가 부모 클래스의 메서드와 동일해야 합니다. 동적 바인딩: 어떤 메서드가 호출될지는 객체의 실제 타입에 따라 동적으로 결정됩니다. 즉, 실행 시간에 객체의 실제 타입을 ..
딕셔너리 합치기 딕셔너리 합치는 방법입니다. 간단합니다만 딕셔너리 특성상 key 가 같은 경우에는 덮어쓰기가 되니깐 그부분을 잘 조작하면 내가 원하는대로 딕셔너리를 다룰 수 있습니다. 딕셔너리 합치는 방법 2개의 딕셔너리를 합치는 방법은 간단합니다. update()라는 함수를 쓰면 됩니다. test1 = {'A':1,'B':2,'C':3} test2 = {'A':2,'D':4,'E':5} test1.update(test2) print(test1) 3개 이상일 때도 update를 이용해서 반복하면 됩니다. 한꺼번에 하려면 다음과 같이 합니다. dict1 = {'a': 1, 'b': 2} dict2 = {'b': 3, 'c': 4} dict3 = {'d': 5} merged_dict = {**dict1, *..