본문 바로가기

Python176

[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.
[Tableau(태블로)]TSC(Tableau Server Client)로 Tableau Server 관리하기 Python의 라이브러리중 Tableau Server Client라는 라이브러리가 있다, TSC라는 줄임말로 주로 사용하는데, 해당 라이브러리를 사용하여 Tableau Server의 거의 모든 기능들을 코드로 작성가능하다. csv 형태의 데이터 원본을 서버로 업로드하거나 hypter로 변경된 데이터 원본을 전송하거나, 유저 관리도 가능하다. 또한 해당 코드를 사용하고 Django로 간단한 사이트를 만들어 유저 관리도 가능하다. 구현하는데 시간이 걸리겠지만 구현만 된다면 사용자가 원하는 형태로 Tableau Server사용이 가능하다고 본다. 이번엔 TSC에서 제공하는들중 유저목록을 리스트 형태로뽑는 방법을 기재할것이다. ---TSC로 Tableau Server의 유저 목록 뽑아오기--- import ta.. 2022. 8. 31.
pyinstaller 용량 줄이기(순정 Python) Pyqt5를 사용하여 어떠한 프로그램을 만들었다, 사용자 편의성을 위하여 코드에서 실행하는것이 아닌 .exe를 사용하여 간단하게 실행가능하게 하고 싶다면 pyinstaller를 사용하면된다. 문제는 pyinstaller를 사용하여 생성된 .exe파일의 크기가 엄청나게 클수도있다는 점이다, 이는 코드에서 사용된 패키지들을 같이 동봉하면서 발생하는 문제이며, pyinstaller -F -w --exclude numpy, --exclude pandas 파이썬파일명.py 와 같이 pyinstaller로 .exe를 생성할때 패키지를 제거할수도 있지만, 사용자의 PC에 해당 패키지가 미리 설치되어 있어야하는 단점이 있다. 여러가지 검색한 결과 순정 Python을 사용하면 용량이 크게 준다고 하여 그대로 진행해보았다.. 2022. 8. 17.
[GCP]Bigquery로 Dataframe전달할때 GenericGBQException 에러해결하기 Python을 사용하여 Excel파일을 Dataframe 형태로 불러온 후 전처리를 진행하였다, 완료된 Dataframe 파일을 DB형식으로 Bigquery로 저장하려고 하는데 아래와 같은 에러가 발생하였다. GenericGBQException : Reason: 400 POST https://bigquery.googleapis.com/bigquery/v2/projects/프로젝트명/datasets/데이터셋명/tables?prettyPrint=false: Invalid field name "컬럼명". Fields must contain only letters, numbers, and underscores, start with a letter or underscore, and be at most 300 ch.. 2022. 8. 10.
[GCP]Bigquery로 데이터 전송하기(Dataframe / Python / pandas_gbq) Google Cloud Platfrom에는 여러가지 기능이 있는데, Cloud Storage와 같은 저장소도 있고, SQL도 여러가지 종류를 사용가능하며, Cloud Bigquery와 같이 빅데이터도 저장 및 호출이 가능합니다. 만약 Bigquery로 엑셀 데이터(csv/xlsx)를 전송하고 싶을때 Python을 사용하여 전송해보자 1) 우선 엑셀 파일을 먼저 불러온다. import panas as pd Data_df = pd.read_csv('test.csv',index_col=0) 2) GCP의 Bigquery로 가면 아래와 같이 프로젝트명 > 데이터세트명>데이터 테이블 명으로 구분되어 있다. 3) 1)의 컬럼명/컬럼형에 맞게 테이블을 생성해준다. 4) [IAM 및 관리자] > [서비스 계정]에 가서.. 2022. 8. 10.
[python(파이썬)]dataframe 호출시 na 살리기 pandas의 read_csv()를 할때 분명히 Nan이 아닌데도 Nan이 나오는 경우가 있어 검색해보았다. 검색 결과 na / Na라고 적혀있을경우 read_csv에서는 이를 Nan이라고 판단하고 모두 Nan값으로변경해버린다. col_1 col_2 col_3 col_4 col_5 col_6 0 NA 값_1 값_2_1 1 1 NA 값_2 값_2_2 1 2 NA 값_3 값_2_3 1 3 NA 값_4 값_2_4 1 4 NA 값_5 값_2_5 1 5 NA 값_6 값_2_6 10 1 6 NA 값_7 값_2_7 2 1 위 csv파일을 read_csv()로 불러오면 아래처럼 변경되어 버린다.(NA -> Nan) col_1 col_2 col_3 col_4 col_5 col_6 0 Nan 값_1 값_2_1 1 1 Na.. 2022. 7. 22.
[python(파이썬)]dataframe 특정 컬럼의 값만 바꾸기(replace specific columns) 간혹 가다 dataframe의 값들중 빈칸인데도 Nan이 아닌 ""로 되어 있는 경우가 있다. 그렇다고 fillna를 써서 모든 Nan값을 빈칸으로 만들고 싶지 않은 경우가 있다. 그럴경우에는 어떻게하는지 기록한다. ex)요런 df(temp_df)가 있다고 가정했을때 col_1 col_2 col_3 col_4 col_5 col_6 0 값_1 값_2_1 Nan 1 1 값_2 값_2_2 Nan 1 2 값_3 값_2_3 Nan 1 3 Nan 값_4 값_2_4 Nan 1 4 Nan 값_5 값_2_5 Nan 1 5 Nan 값_6 값_2_6 1 1 6 Nan 값_7 값_2_7 2 1 import numpy as np temp_dict={"" : np.nan} temp_df=temp_df.replace({"col_2.. 2022. 7. 22.
[python(파이썬)]비속어 제거하기(better-profanity) NLP처리를 하다가 부정맨션 중 중요한 키워드만 추출하는 과정을 진행중인데, 비속어의 경우 100% 부정언어기 때문에 중요한 키워드가 아닌 비속어만 추출하는 문제가 발생했다, 어차피 부정맨션만을 모아놓은 것이기 때문에 비속어는 불필요한 데이터이므로 제거해줄려고 한다, 문제 예시 ex) Fxxx Dumx Stupid Service -> 중요한 키워드 : Service 실제 추출되는 키워드 : Fxxx Dumx Stupid #비속어를 변경 후 제거할 예정 !pip install better-profanity from better_profanity import profanity text = "비속어가 포함되어 있는 문장 Please leave me alone and just piss off" censored .. 2022. 6. 27.