판다스(Pandas)를 사용하여 데이터를 다루다 보면 두 개의 데이터프레임을 조합하거나 특정 조건을 충족하는 행을 제거하는 작업이 필요할 때가 있다. 이번 글에서는 두 데이터프레임을 비교하여 특정 문자열이 포함된 행을 제거하는 방법을 소개한다. 코드 설명 # 필요한 라이브러리 불러오기 import pandas as pd # 두 개의 데이터프레임 생성 (예시 데이터) df1 = pd.DataFrame({'기관명': ['기관1', '기관2', '기관3', '기관4'], '값': [1, 2, 3, 4]}) df2 = pd.DataFrame({'기관명': ['기관2', '기관4'], '값': [10, 20]}) # df2의 기관명이 포함된 행 제거 df3 = df1[~df1['기관명'].isin(df2['기관명..
pd.where(조건문, 실행문) 형태로 빈 값에 원하는 값을 채울 수 있다. np.nan와 None을 통일시키고 싶을 때 사용할 수 있음 df = df.where(pd.notnull(df), None) where를 사용해서 다양한 조건문으로 데이터를 조작할 수 있음 >>> s = pd.Series(range(5)) >>> s.where(s > 0) 0 NaN 1 1.0 2 2.0 3 3.0 4 4.0 dtype: float64 >>> s.mask(s > 0) 0 0.0 1 NaN 2 NaN 3 NaN 4 NaN dtype: float64 아래 공식문서를 참고 https://pandas.pydata.org/docs/reference/api/pandas.DataFrame.where.html pandas.D..
3D Force Graph를 이용한 시각화 예제 3D Force Graph는 3D 공간에 노드와 링크를 표현하는 시각화 라이브러리이고, 원본 깃헙에 예제가 다양하게 존재함 CSV 파일을 읽어와서 3D Force Graph에 사용하는 JSON으로 변환하는 코드 포함 노드를 클릭하면 해당 관광지의 정보를 보여주는 infoBox 구현 사용 데이터: 전국관광지정보표준데이터 모든 코드는 Github 레포지토리에 공개되어있습니다 데이터 정제 import pandas as pd import numpy as np import json df = pd.read_csv('data.csv', encoding='cp949') # 공공데이터는 주로 cp949로 인코딩 되어있음 # null값 처리 df = df.replace({n..
전역변수를 활용하면 가능하다. 예를 들어, 시도명 또는 시도코드마다 데이터 프레임을 만들고 싶을 때 아래와 같은 코드를 사용할 수 있음 global()[변수명] sido_code_list = { '11': '서울', '51': '강원', '41': '경기', '48': '경남', '47': '경북', '29': '광주', '27': '대구', '30': '대전', '26': '부산', '36': '세종', '31': '울산', '28': '인천', '46': '전남', '45': '전북', '50': '제주', '44': '충남', '43': '충북' } for code, sido in sido_code_list.items(): # 동적으로 변수명 생성 df_name = f"df_{code}" #df_1..
pandas는 df[[df['컬럼'] == 'abc']] 이런 구문으로 찾았는데, polars는 filter라는 함수를 사용함 df.filter(pl.col("컬럼") == "abc") 조건이 여러개인 경우 공식 홈페이지 예시 df.filter((pl.col("foo") < 3) & (pl.col("ham") == "a")) 중복값이 있는 행 조 df.filter(pl.col('컬럼').is_duplicated())
polas에서 데이터프레임을 출력하면 긴 문자열을 아래 사진처럼 끊긴다 pandas에서는 max_colwidth을 쓰면 해결됐었음 https://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.option_context.html pandas.option_context — pandas 2.1.3 documentation next pandas.option_context.__call__ pandas.pydata.org polars의 문법 pl.Config.set_fmt_str_lengths(200) 공식 홈페이지의 예시 코드 df = pl.DataFrame( { "txt": [ "Play it, Sam. Play 'As Time Goes By'.", "T..
공식홈페이지 기본 문법 df.cast({"foo": pl.Float32, "bar": pl.UInt8}) 모든 데이터의 형식을 str(문자열)로 바꾸기 -> utf8 df = df.with_columns(pl.all().cast(pl.Utf8, strict=False)) with_columns로 모든 컬럼(pl.all())을 불러오고, 모든 컬럼의 데이터 타입을 cast로 지정해 변환함 strict는 예외발생시 강제로 수행할 것인가를 지정함 (참고용) 리스트 안에 있는 값을 str으로 변환하는 코드 출처: https://stackoverflow.com/questions/75628413/cast-column-of-type-list-to-str-in-polars df.with_columns(pl.col("f..
pandas와 다르게, index가 포함되지 않고 저장됨 # 기본 코드 df.write_csv("파일명.csv") 판다스는 인코딩을 특정해서 저장할 수 있지만, polars는 현재(2023-11-21) 지원하지 않음 대신, 계속 업데이트 중이라서 최근 `include_bom` 변수로 윈도우의 인코딩을 지원할 수 있게 되었음 (polars 0.19.15 버전 기준) https://github.com/pola-rs/polars/pull/12253 df.write_csv("파일명.csv", include_bom=True) 이외의 파라미터는 공식홈페이지를 참고 아래는 단순 번역한 내용임 (최신 라이브러리라서, 계속 변경될 가능성이 높음) parameter: - file (파일): 결과가 기록될 파일 경로 또는 ..
모두 null값이 없는 컬럼이라면 아래와 같이 사용할 수 있음 df = df.with_columns(새컬럼 = pl.col('참조컬럼1') + pl.col('참조컬럼2')) null값이 존재하는 행을 처리하려면 when, then, otherwise 사용 df = df.with_columns(새컬럼 = pl.when(pl.col('참조컬럼2') != None).then(pl.col('참조컬럼1') + pl.col('참조컬럼2')).otherwise(None)) 참조컬럼2에 null(None)이 아니면 (when) 참조컬럼1+참조컬럼2의 값을 기입(then) 참조컬럼2에 null(None)이면 (when) 참조컬럼1+참조컬럼2의 값이 아니라(otherwise) None을 기입 apply(=map_eleme..
- Total
- Today
- Yesterday
- cursorai
- Postgis
- rdflib
- pdfmathtranslate
- MongoDB
- LLM
- deepseek
- pandas
- Encoding
- 지식그래프
- TextRank
- PEFT
- PostgreSQL
- 키워드추출
- 지식그래프임베딩
- geospy
- vervel
- rdffox
- python'
- Claude
- hadoop
- python
- writerow
- ChatGPT
- SPARQL
- polars
- Vue3
- vscode
- knowledgegraph
- psycopg
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |