본문 바로가기

programming

(118)
[Python] 아나콘다 32비트 가상환경 만들고 파이참에서 사용하기 (Making 32bit Python in Anaconda & Using virtual env in Pycharm) ***키움 Open API 연동오류 해결 방법 AttributeError: 'QAxWidget' object has no attribute 'OnEventConnect' 오탈자도 없는데, 위와 같은 문제가 생겼다. 찾아보니, bit가 안맞아서 발생하는 문제였다. OPEN API는 32bit인데, 내가 사용하던 파이썬은 64bit이기 때문이다. 결론적으로는 파이썬 32bit 가상환경을 만들어서 파이참에서 사용하면 된다. 1. 아나콘다 프롬프트 실행 (1. Anaconda Prompt) 2. 파이썬 32비트로 설정 (2. setting 32bit python) set CONDA_FORCE_32BIT=1 3. 파이썬 가상환경 설치 (3. install 32bit python virtual env) 가상환경이름..
[Python] 네이버 이미지 크롤링하기 크롤링이란? 웹페이지에 있는 정보를 내가 원하는 것만 뽑아서 수집하는 것이다. 주로 크롤링으로 많이 하는 것들은 이미지 파일들이다. 이번에는 파이썬을 사용하여 이미지를 크롤링하고, 크롤링한 이미지 파일들을 opencv를 이용해서 원하는 포맷으로 편집까지 해보려한다. 크롤링에 많이 사용하는 것들은 뷰티풀숲(Beautiful Soup) 이다. 하지만 정적인 콘텐츠가 아니고, 동적인 콘텐츠의 경우 실제로 웹 창이 열려야 이미지 소스들이 그제서야(?) 웹페이지에 다운이 되는 경우가 많이 있다. 그래서 셀레니움(Selenium)을 사용한다. 1. 필요한 모듈을 설치한다. !pip install bs4 !pip install selenium !pip install opencv-python 2. 필요한 모듈을 imp..
[Python] 파이썬 DataFrame(데이터프레임) 인덱싱, 슬라이싱 인덱싱은 필요한 칼럼이나 로우를 인덱스로 가져오는 것이다. 슬라이싱은 필요한 부분만 남기고 잘라내는 것이다. 1) .loc : 명시된 인덱스 참조 import numpy as np import pandas as pd family_df = pd.DataFrame({"Gender":gender_series, "Age":age_series, "Job":job_series}) Gender Age Job Flin Male NaN Student Hank Male 30.0 DEA Mary Female 25.0 Doctor Skyler Female 38.0 Accountant # "Hank"라고 명시적으로 인덱스 표기하여 데이터 추출하기 print(family_df.loc["Hank"]) # 결과 Gender Male..
[Git] 원격 브랜치 로컬pc로 가져와서 작업하기 ( + 에러 해결 fatal: Ambiguous object name: 'origin/tom_20211220_refreshTokenApply') 원격 레포지토리에 있는 브랜치를 로컬 PC로 가져와서 작업하기 1. remote branch 정보를 최신으로 업데이트하기 (master에서 진행) git remote update 2. 어떤 브랜치를 가져올지 정확한 브랜치명 확인 (master에서 진행) git branch -r 3. 원격 브랜치를 로컬로 가져오기 (master에서 진행) git branch -t origin/tom_20211220_refreshTokenApply 4. 생성된 브랜치 확인 git branch 5. 생성된 브랜치로 이동 git checkout origin/tom_20211220_refreshTokenApply 6. 이동한 브랜치 다시한번 pull 확인 git pull origin tom_20211220_refreshToken..
[Next.js] Props `className` did not match. Warning: Prop `className` did not match. Server: "sc-gKclnd ctBXSH" Client: "sc-dkPtRN hSjZFd" Next.js로 Styled-components 사용하면, 최초 빌드하여 랜더링은 문제 없이 잘 되는데, 몇번 새로고침을 하면 위와같은 에러가 발생할 때가 있다. Next는 처음 페이지는 SSR(서버사이드 랜더링)으로 작동하고 이후는 CSR(클라이언트 사이드 렌더링)으로 작용하기 때문에, 서버에서 받은 해시 클래스명과 이후 클라이언트에서 작동하는 해시클래스명이 달라져서 스타일을 적용하지 못하는 현상이다. [최초 랜더링] : 정상 작동 [n번 새로고침 시] : Warning과 함께 스타일 적용 안됨 해결방안 바벨 플러그인을 설치하고 바벨 ..
[React] 사파리 '홈 화면에 추가' 시 앱 이름 변경하기 개발한 웹페이지를 모바일에서 사용하기 위해 여러가지 설정들을 해주어야 한다. 그 여러가지 설정 중에 하나를 오늘 기록하려 한다. 바로 '홈 화면에 추가' 기능이다. PC라고 생각했을 때 바로가기 기능과 같다. 다만 모바일에서 '홈 화면에 추가'를 해두면, 웹이 앱처럼 동작하게 만들어 준다. 우선 아무 설정을 하지 않았을 때는 React App이라는 Default 설정 값으로 바로가기 이름이 생성된다. 나는 이 React App을 서비스 이름으로 변경하고 싶었다. 홈화면에 추가 (바로가기 기능)에서 참조하는 파일이 바로 manifest.json 파일이다. 최초 리액트 세팅시 create-react-app 명령어를 통해서 public 폴더에 manifest.json 파일이 생성된다. manifest.json..
[Python] 파이썬 파일 다루기 / 파일 저장하기 / 파일 읽기 pandas를 활용해 데이터프레임을 다룰때 엑셀파일이나 CSV 파일을 많이 사용한다. 엑셀파일이나 CSV 파일을 불러오고 작업후 저장하는 방법에 대해서 정리해보자. 1) 읽기 : .read_csv / .read_excel 2) 저장 : .to_csv / .to_excel import numpy as np import pandas as pd #파일 읽기 my_df = pd.read_csv("파일경로/~.csv") my_df = pd.read_excel("파일경로/~.xls") #파일저장하기 my_df.to_csv("파일경로/~.csv") my_df.to_excel("파일경로/~.xls")
[Python] 파이썬 pandas(판다스)를 활용하여 DataFrame(데이터프레임) 만들기 DataFrame (데이터프레임) 은 여러개의 Series가 모여서 이룬 행*열 데이터이다. 흔히 생각하는 "표" 와 같다. 데이터베이스의 기반이 된다. #Series는 인덱스를 가진 하나의 "컬럼(열)" 이라고 보면 된다. 1. DataFrame(데이터프레임) 만들기 - 이름을 인덱스로 가지는 3개의 시리즈가 있다. (gender/age/job) - 이 3개의 시리즈를 이어 붙여서 하나의 family_df 데이터프레임을 만들었다. - 시리즈끼리 누락되어있는 인덱스 값은 자동으로 NaN 으로 들어간다. import numpy as np import pandas as pd gender_series = pd.Series(['Female','Female','Male', 'Male'], index = ['Sky..
[Python] 파이썬 Pandas(판다스) 활용하여 시리즈(Series) 만들기 Pandas(판다스) 란? 파이썬의 라이브러리이다. 사용 목적은 방대한 행렬, 엑셀자료, CSV자료를 가지고 데이터베이스(DB)작업을 하기 위함이다. 딕셔너리와 유사한 시리즈(Series), 거대한 표인 데이터프레임(DataFrame) 을 가지고 강력한 연산작업을 할 수 있게 해주는 라이브러리이다. pandas를 사용하려면 아래의 코드를 가장 먼저 입력해 주어야 한다. import pandas as pd 1. Series (시리즈) : 특수한 딕셔너리, key 값을 인덱스로 사용할 수 있다. #Dictionary(딕셔너리) = {'key': 'value', 'key2':'value2' ....} key 값과 value 값이 있다. 이 딕셔너리를 그대로 가져와서 key값을 index로 사용한다고 생각하면 ..
[Python] 파이썬 Numpy(넘파이) 배열 마스킹 마스킹이란 원하는 조건을 달아서 조건에 맞는 배열요소들만 걸러내는 작업이다. True/False를 반환하는 조건을 인덱스처럼 집어 넣으면 조건의 True 값을 반환하는 원소들만 뽑아낼 수 있다. arrra2 = array[array > 3] import numpy as np my_arr = np.random.randint(0,10,(3,4)) [[6 3 5 6] [2 3 4 3] [0 4 8 0]] print(my_arr > 5) # 결과 [[ True False False True] [False False False False] [False False True False]] mask_arr = my_arr[my_arr >5] # 결과 [6 6 8]