본문 바로가기

프로그래밍/Python57

[Python]specified google ads api version "V{}" does not exist -Solved specified google ads api version "v11" does not exist 이라는 에러가 발생하였다, 버전 11이 없다는 건데 원인은 간단하다. 1) python버전을 확인한다. ex) python3.6의 google-ads의 최신버전은 12.0.0 이지만 python3.9의 google-ads 최신버전은 19.0.0 이다. api "V11"의 경우 >=17.0.0 이후에 나온다. 2) google-ads를 재설치 한다. pip uninstall google-ads pip install google-ads==18.1.0 2023. 2. 7.
[Python] pandas NaN값 처리하기 조건문을 사용할때 NaN값이 있을 수 있는데, np.NaN으로 처리해도 되지만 더욱 간단한 방법이 있다. my_df = pd.read_csv('csv location.csv') my_df=my_df.fillna(0) fillna()를 사용하면 NaN값을 본인이 원하는 값으로 변경할 수 있다. 이후 조건문을 사용하면 된다. 끝. 2023. 1. 16.
[Python] pandas Dataframe TypeError: Cannot perform 'rand_' with a dtyped [object] array and scalar of type [bool] Dataframe은 데이터를 처리하는데 간편하고 성능이 나쁘지 않는 라이브러리다. Dataframe중 어떤 특정 조건을 만족하는 데이터만을 조회할 때는 아래와 같은 문법을 사용하면 된다. //my_df에서 컬럼명이 0이 아닌 데이터만 뽑아오기 my_df = pd.read_csv('CSV 경로.csv') my_df[my_df['컬럼명']!=0] //문제는 여러가지 조건을 만족하는 값을 찾을때가 문제인데 //my_df에서 컬럼명이 0 또는 1이 아닌 데이터만 뽑아오기 my_df[my_df['컬럼명']!=0 | my_df['컬럼명']!=1] 이렇게 하면 TypeError: Cannot perform 'rand_' with a dtyped [object] array and scalar of type [bool].. 2023. 1. 16.
[Pandas(Dataframe)]Delete Header(columns) for Hive2 insert Dataframe컬럼만 싹 지우기 CSV파일을 Spark SQL에서 사용하기 위해서 Database에 적재할 필요가 있는데, 단순히 LOAD DATA INPATH로 Database에 적재할 경우 컬럼명들을 데이터로 판단해서 Insert 하는 문제가 발생한다. 따라서 우리는 Dataframe에서 컬럼을 아예 삭제해야한다. 방법은 간단하다. 헤더만 삭제하는 코드 import pandas as pd temp_df=pd.read_csv('filepath/filename.csv,skiprows=1) temp_df.to_csv('filepath/filename_save.csv,index=false) 이렇게하면 헤더만 삭제 하고 첫번째 데이터가 가장 위로 올라간다. 이후 Hive에 해당 파일을 저장하면 된다. 끝. 2022. 12. 12.
[jupyter notebook]requirement already satisfied no module named pip install python version python에서 제공하는 패키지 다운로드 명령어인 pip를 사용하는 방법은 아래와 같다. python -m pip install [Package Name] ex) python -m pip install pandas 만약 다른 버전의 python에 패키지를 설치하고 싶다면 아래와 같이 버전을 입력해주면 된다. python3.6 -m pip install [Package Name] ex) python3.6 - m pip install pandas 본인이 jupyter notebook을 사용한다면 아래와 같이 입력해도 된다. !pip install pandas or !pip3.6 install pandas 문제는 이렇게 해서 어떠한 패키지를 설치 했는데도 불구하고 No moduled "Package Name".. 2022. 11. 25.
[jupyter notebook]kernel starting please wait, connection failed 에러 해결하기 데이터 전치리 및 ml / dl 그리고 tabpy서버로 사용중이던 jupyter 서버의 kernel이 정상적으로 연결되지 않고 계속 끊기는 증상이 발생하였다. 어떠한 ipynb를 실행했을때 kernel starting ~ please wait에서 멈춰 있다가 갑자기 connection failed 팝업창이 뜨는 문제가 있다, 코드는 실행될때도 있고 실행되지 않을때도 있는데, 오래 돌리고 있어야하는 코드가 있으면 해당 에러 발생시 중간에 끊겨서 그동안 해왔던 결과물이 증발하는 경우도 발생하였다, 해결방법은 아래와 같다 1) 서버 재시작 netstat -natp | grep jupyter or netstat -natp | grep 8888 로 실행중인 jupyter notebook의 PID를 확인한 후 ki.. 2022. 10. 4.
[Python(파이썬)]각기 다른 Dataframe에서 동일 값이면 replace(변경)하기 Dataframe을 사용하여 데이터 전처리를 하다 보면, 기존 데이터를 수정해야 하는 상황이 많이 발생한다. 그중에서도 SQL Query문을 사용하듯이 특정 동작을 수행해야 하는 경우가 있는데, 예시 테이블과 같이 "Col_2"의 컬럼의 String 값들중 특정 문자들만 변경해주려고한다. 물론 그냥 직접 df['Col_2'].str.replace('U.S.A','US') 이런식으로 일일히 바꾸어도 시간이 걸린뿐 동일한 동작은 가능할 것이다. 하지만 만약에 위와 같은 국가의 갯수가 100개가 넘는다면? 그리고 같은 국가명인데 세부정보가 다른경우가 있다면? ex) Japen (English) / Japen (Franch) 만약, 나중에 추가되는 데이터의 국가명이 기존과 다르게 변경된다면? U.S.A -> U.. 2022. 9. 14.
[GCP]Bigquery 기존 데이터 업데이트/수정하기(Python) Python 라이브러리 중 데이터분석쪽에서 가장 유명한 pandas에서 제공하는 to_gbq를 사용하면 GCP(Google Cloud Platform)의 Bigquery와 통신이 가능하다. DB를 Dataframe형태로 불러올 수도 있고,반대로 dataframe을 Bigquery로 업로드 할수도 있다. 제공하는 to_gbq는 크게 append / replace / fail이 있으며 이를 활용하여, 사용자가 실수로 잘못된 데이터를 입력하였을때 기존 데이터와 비교하여 특정 부분만 업데이트하는 방식을 사용할 것이다. 엑셀 -> Bigquery(업로드) append / replace from datetime import datetime from google.cloud import storage import os.. 2022. 9. 5.
pyinstaller 용량 줄이기(순정 Python) Pyqt5를 사용하여 어떠한 프로그램을 만들었다, 사용자 편의성을 위하여 코드에서 실행하는것이 아닌 .exe를 사용하여 간단하게 실행가능하게 하고 싶다면 pyinstaller를 사용하면된다. 문제는 pyinstaller를 사용하여 생성된 .exe파일의 크기가 엄청나게 클수도있다는 점이다, 이는 코드에서 사용된 패키지들을 같이 동봉하면서 발생하는 문제이며, pyinstaller -F -w --exclude numpy, --exclude pandas 파이썬파일명.py 와 같이 pyinstaller로 .exe를 생성할때 패키지를 제거할수도 있지만, 사용자의 PC에 해당 패키지가 미리 설치되어 있어야하는 단점이 있다. 여러가지 검색한 결과 순정 Python을 사용하면 용량이 크게 준다고 하여 그대로 진행해보았다.. 2022. 8. 17.