❗❗chatGPT를 사용하여 예시 데이터 프레임과 아래와 같이 프롬프트를 작성하여 얻은 코드입니다.❗❗ "'다운로드명'은 중복으로 생성하고 '시도명'에 있는 리스트값을 한행씩 쪼개는 코드를 작성해줘" 아래와 같이 explode 함수를 사용하여 시도 컬럼을 리스트에서 한 행씩 쪼개서 중복된 다른 컬럼의 값과 함께 표현할 수 있습니다. import pandas as pd # 데이터프레임 생성 data = {'다운로드파일명': ['부산1_부산광역시_건축사사무소 현황_20220719.CSV', '부산2_부산광역시_도시공간정보시스템_도로안내시설_20210720.CSV', '부산4_부산광역시_도시공간정보시스템_지하시설_20220711.CSV', '부산6_부산광역시_부산도시공간정보시스템_도로상하수도기반시설물_업체정보..

목적 행정구역명 (시도명, 시군구명)이 포함된 특정 CSV, Excel 파일이 존재함 해당 파일에 특정 시도명, 시군구명이 포함된 셀이 있는지 찾고 새로운 데이터 프레임에 해당 파일명과 포함된 시도, 시군구 정보를 생성하기 행정구역 파일 불러오기 행정기관(행정동) 및 관할구역(법정동) 변경내역(2023. 3. 30.) juso_df = pd.read_excel('D:\행정구역추출\jsocde20230330\jsocde20230330\KIKmix.20230330.xlsx') 시도 리스트, 시군구 리스트, 읍면동 리스트 만들기 sido_list = list(juso_df.시도명.unique()) sido_list.remove('동해출장소') sido_list.remove('북부출장소') # nan 값 삭제 ..

file_list = os.listdir() file_list = [file for file in file_list if file.endswith(".txt")] # 확장자 print(file_list) df = pd.DataFrame() df["파일명"] = file_list df["행 수"] = None df["열 수"] = None for i in range(len(df)): file = df['파일명'][i] tmp = pd.read_csv(file, sep="|", low_memory=False, encoding="cp949") # 인코딩 선택 df['행 수'][i] = tmp.shape[0] df['열 수'][i] = tmp.shape[1]
기관코드와 전체기관명으로 구성된 df1 소관기관 컬럼에 전체기관명만 있는 df2 두 개의 데이터 프레임을 합쳐서 하나로 병합하고 싶다면, pd.merge 함수를 쓰면 된다. 하지만, merge 함수 만으로는 경찰관, 교육부가 입력된 셀은 매핑될 수 없다. 이 문제를 해결하기 위해 아래와 같은 코드를 작성하였다. # 기관코드 merge new_df = pd.merge(df2, df1, how="left", left_on="소관기관", right_on="전체기관명") new_df.replace({np.nan: None}, inplace=True) # 소관기관이 여러개 인 경우가 있음 for idx, row in new_df.iterrows(): if row['소관기관'] != None and ..

아래 구조와 같이 col1, col2 중 먼저 나오는 데이터를 기준으로 새로운 컬럼을 만들어야하는 경우가 있다. 이때는 'combine_first'를 사용하면 만들 수 있다. import pandas as pd #둘 중 하나에 값이 있으면 합치기 df['new_col'] = df['col1'].combine_first(df['col2']) df.drop([['col1','col2]], axis=1, inplace=True) # 필요없는 컬럼은 삭제 참고 블로그 - https://wikidocs.net/153673 08-02. 다른 객체로 결측치 덮어쓰기 (combine_first) ####DataFrame.combine_first(other) ##개요 `combine_first` 메서드는 `other`의..

데이터 프레임을 다룰 때, 특정 컬럼의 형태가 아래 그림과 같이 형성된 경우가 있다. 하나의 셀에 리스트 형태로 들어있는 문자열이 있으면, type이 str로 인식하기 때문에 이 컬럼을 for문 등의 조건문을 사용할 수 없다. 이를 해결하기 위한 방법으로 ast.literal_eval 함수를 사용할 수 있다. 하나의 문자열만 해결하는 것 보단, 데이터프레임 수준에서 적용할 수 있는 코드를 공유하고자 한다. 데이터프레임의 특정 컬럼의 모든 셀을 한번에 변환하기 위해선, 예외 처리를 포함한 함수를 만들어 lambda를 적용하는 것이 좋다. 아래 코드는, str_to_list(x) 함수를 만들었고, 특정 컬럼에 apply와 lambda를 사용했다. import pandas as pd from ast impor..

pandas를 사용한지 2년이 넘었지만, 사소한 부분에서 모르고 넘어간 부분이 많았다. 한글 인코딩은 'utf-8' 또는 'cp949'로 저장된 데이터가 많은것은 알고있었지만, 흔히 'utf-8'로 저장한 csv나 excel 파일을 열면 한글 깨짐의 상태로 열린다. MS excel 365에서 깨지지 않게 보기 위해선 '데이터 > 데이터 가져오기 > 파일에서 > 텍스트/csv에서'를 클릭해 불러오고자하는 데이터를 선택하면 된다. 그 동안 이 방법으로 번거롭게 열었는데, 최근 'UTF-8-SIG'로 저장하면 파일형식간의 호환을 지원해주어 깨지지않고 바로 열 수 있다는 걸 알게 됐다. import pandas as pd # 데이터 프레임 만들기 df = pd.DataFrame(data=sample_data) ..
데이터 전처리를 위해서, 조건절에서 None을 기준으로 데이터를 판단하는 경우가 많다. 하지만, Pandas로 데이터프레임을 불러오는 과정에서 Null 값의 처리가 제대로 되지않으면 원하는 결과를 낼 수 없다. 보통 np.NaN 또는 None을 기준으로 null 값 처리하기 때문에 이 글은 None값 처리를 하는 코드의 예시이다. import pandas as pd import numpy as np # 데이터 불러오기 path = r'파일경로' df = pd.read_csv(path,keep_default_na=False, # 빈 값은 None값으로 불러오기 na_values = ['?', '??', 'N/A', 'NA', 'nan', 'NaN', '-nan', '-NaN', 'null','None', ..
- Total
- Today
- Yesterday
- pdfmathtranslate
- cursorai
- Vue3
- psycopg
- TextRank
- PostgreSQL
- ChatGPT
- 지식그래프임베딩
- rdffox
- PEFT
- 키워드추출
- pandas
- geospy
- vscode
- vervel
- Postgis
- Encoding
- SPARQL
- LLM
- writerow
- rdflib
- polars
- python
- hadoop
- deepseek
- knowledgegraph
- Claude
- MongoDB
- 지식그래프
- python'
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 |