polars 10

[polars] 데이터프레임의 결측값을 리스트 형태로 추출하고 변환 (null_count, to_list)

# 1. 데이터프레임의 null 값 개수 계산 null_count = df.null_count() # 2. Series 객체의 첫 번째 행만 추출 head_row = null_count.head(1) # 3. 첫 번째 행의 첫 번째 값만 추출 (리스트 형태) value = [value[0] for value in head_row] # 4. 리스트를 변환하여 최종 결과 반환 result = pl.Series(value).to_list() # 한번에 조합한 코드 pl.Series([value[0] for value in df.null_count().head(1)]).to_list() data.null_count() 함수를 사용하여 데이터프레임의 각 컬럼에 대한 null 값의 개수를 계산함 이 때, 출력값은 ..

[polars] 데이터 EDA 코드 만들기 (컬럼수, 행수, 결측값 등)

Polars 라이브러리를 사용하여 데이터 탐색적 분석(EDA) 코드를 만드는 방법을 소개합니다. 특히, 컬럼 수, 행 수, 결측값 수 등 기본적인 EDA 정보를 계산하는 코드를 다룹니다. import chardet #polars import polars as pl file_name = "데이터 경로" charenc = detect_enc(file_name) # open file data = pl.read_csv(file_name, encoding = charenc, ignore_errors= True, low_memory=False, truncate_ragged_lines = True, infer_schema_length=0) # 컬럼명 column_list = list(data.columns) # 컬럼..

[polars] 셀 안의 문자열 또는 리스트 값 모두 보이게 출력(polars.Config.set_fmt_str_lengths, max_colwidth)

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..

[polars] 데이터프레임의 특정 컬럼 또는 모든 컬럼의 데이터 타입 변경하기(cast)

공식홈페이지 기본 문법 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..

[polars] write_csv로 UTF-8-SIG 처럼 저장하기(include_bom)

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 (파일): 결과가 기록될 파일 경로 또는 ..

[polars] with_columns(), map_elements(=apply) 컬럼 전처리 후 새로운 컬럼 만들기

모두 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..

[polars] read_csv, 특정 문자열을 None 처리, dtypes 설정

csv 파일을 읽어올 때, 특정 문자열을 None으로 바꾸기 df = pl.read_csv("data.csv", dtype=str, na_values=["", " "]) 참고: stackoverflow df = pl.read_csv("test.csv", infer_schema_length=0).with_columns(pl.all().cast(pl.Utf8, strict=False)) 데이터프레임이 이미 생성된 경우, 특정 문자열을 None으로 바꾸기 df = df.with_columns( pl.when(pl.col(pl.Utf8) == "") .then(None) .otherwise(pl.col(pl.Utf8)) # keep original value .name.keep() ) 여러 문자열 중 하나라도 ..