파이썬(Python)&판다스(Pandas)&Polars

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

송채채 2023. 11. 17. 10:25

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()
)

 

  • 여러 문자열 중 하나라도 해당하면 None으로 변환 (is_in)
df = df.with_columns(
  pl.when(pl.col(pl.Utf8).is_in(["", " ", "Nu"]))
  .then(None)
  .otherwise(pl.col(pl.Utf8))  # keep original value
  .name.keep()
)
반응형