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 characters long.
간단하게 해석하자면 어떤 특정 컬럼명이 Bigquery의 조건을 만족하지 않아 Bigquery에서 거부하였다 라는 의미이다.
Dataframe의 컬럼을 Bigquery에 입력할때는 다음 조건을 만족해야한다.
1) 띄어쓰기가 있어선 안된다(대신 _를 사용하면된다)
2) 괄호는 사용할 수 없다( ()가 들어가면 에러가 발생한다)
3) 특수문자 사용 불가
4) 300자 이하여야한다.
엑셀 파일을 직접 수정하거나 아래와 같이 Dataframe 의 reindex를 사용해도 된다.
DataFrame.rename(columns={'기존컬럼명': '변경할_컬럼명', '기존컬럼명2': '변경할_컬럼명2'}, inplace=True)
이후 전송하면 에러 없이 정상 기입된다.
'프로그래밍 > Python' 카테고리의 다른 글
[GCP]Bigquery 기존 데이터 업데이트/수정하기(Python) (0) | 2022.09.05 |
---|---|
pyinstaller 용량 줄이기(순정 Python) (0) | 2022.08.17 |
[GCP]Bigquery로 데이터 전송하기(Dataframe / Python / pandas_gbq) (0) | 2022.08.10 |
[python(파이썬)]dataframe 호출시 na 살리기 (0) | 2022.07.22 |
[python(파이썬)]dataframe 특정 컬럼의 값만 바꾸기(replace specific columns) (0) | 2022.07.22 |