본문 바로가기

프로그래밍/Python57

[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.
[Pandas(판다스)] 특정 row(index)만 범위 삭제하기 그냥 특정 index만 지우는건 데이터프레임명.drop([n,m])이면 되는데 만약에 범위로 지워야 한다면? ex) df.iloc[2233:2255] 2233 index부터 2255 index까지 범위로 지우고 싶다면 아래와 같이 쓰면된다. df.drop(df.iloc[2233:2255].index ,inplace=True) inplace=True는 df에 바로 적용한다는 의미이다. 2022. 6. 8.
[Python].ipynb to .py (Window, Linux) / convert .ipynb to .py Python 개발을 할때에는 보통 주피터 노트북이나, 코랙, Visual Studio를 많이 사용한다, 단순히 실행만 하는거면 상관이 없는데, 스케줄링을 걸어서 반복 실행한다던가 별도로 .py 파일이 필요한 경우 컨버팅이 필요하다, 이때 해당 파일을 컨버팅 하는 방법을 소개하겠다. 1) Window Jupyter Notebook 사용시 대충 이런 .ipynb파일이 있다고 하자, 보통 경로는 주피터 노트북이 설치된 위치이다. ("C:\Users\사용자명\.ipynb_checkpoints\") File > Download as > Python(.py) 좌상단 메뉴바의 File > Download as > Python(.py)를 눌러주면 인터넷에서 파일을 다운 받을때 저장되는 Download 폴더에 .py파일.. 2022. 4. 11.
[Jupyter notebook] 주피터 노트북 모양대로 티스토리에 글쓰기 티스토리에 글을 쓸때마다 그냥 단순히 코드들을 복붙하기에는 모양이 이쁘지가 않고 그렇다고 Color scripter 사이트를 사용해서 꾸미기에도 뭔가 아쉬웠다. 제일 좋은건 아래처럼 주피터 노트북 특유의 회색+흰색의 조화와 코드 실행시 결과를 바로 보여준다는 점이 마음에 들었다. 티스토리에 주피터 노트북 모양대로 입력하려면 어떻게 하는지 찾아보았다 방법은 단순하다 1) 작성한 코드의 File - print preview를 선택 2) 새로 열린 창에서 Ctrl + U를 눌러준다 (페이지 소스 보기) 3) 또 새로 열린창에서 ctrl+A로 전체 선택후 ctrl+c 로 복사 해준다. 4) 티스토리 작성시 우측 상단의 기본모드 -> HTML로 변경 5) 복사한 내용을 그대로 모두 복붙해주면 끝이다. 조금 복잡해.. 2021. 6. 23.
[Numpy,Matplotlib] 4.이미지 시각화도 가능하다 In [1]: import numpy as np import matplotlib as mpl import matplotlib.pyplot as plt import matplotlib.font_manager as fm %matplotlib inline from PIL import Image In [2]: import matplotlib matplotlib.font_manager._rebuild() In [4]: #이미지 파일 열기# path = 'source/dog.jpg' image_pil=Image.open(path) image = np.array(image_pil) In [5]: image_pil Out[5]: In [6]: image.shape #세로,가로,RGB) gray는 1이다... 2021. 6. 18.