如何替换极坐标数据帧中的所有双引号?

How to replace all double quotes in a polars DataFrame?

提问人:centershocks 提问时间:10/26/2023 最后编辑:centershocks 更新时间:10/26/2023 访问量:65

问:

我有一个csv文件,其中一些字符串用双引号(“)括起来,其他字符串则不是。我使用 python 将文件读入 polars DataFrame。

该表如下所示:

┌────────────┬────────┬────────┬────────┬─────────┬───────┐
│ address    ┆ id     ┆ lat    ┆ lon    ┆ name    ┆ state │ 
│ ---        ┆ ---    ┆ ---    ┆ ---    ┆ ---     ┆ ---   │ 
│ str        ┆ str    ┆ f64    ┆ f64    ┆ str     ┆ str   │ 
╞════════════╪════════╪════════╪════════╪═════════╪═══════╡

我想删除所有双引号。该问题仅发生在列和 中。addressname

例如,某些行包含:

“Brückenstraße 1012, 89542 Herbrechtingen”

其他看起来像这样:

Brückenstraße 1012 89542 Herbrechtingen

其他一些人甚至到处都有双引号:

“Grundschule ”“J. W. von Goethe”“ ”

我尝试了以下和各种变体:但没有成功。 一些变体是在“”之前加上一个,转义双引号并设置 .df = df.with_columns(pl.col(["address"]).str.replace_all('"', ''))rliteral=True

编辑:更多可重复的数据和代码: 数据:

address,fax,full_time_school,id,lat,lon,name,official_id,phone,school_type,school_type_entity,state
"Rombacher Straße 30, 73430 Aalen",07361/9561-20,false,BW-75774,48.838598,10.08184,Schubart-Gymnasium Partnerschule für Europa,75774,07361/9561-0,Gymnasium (G8),Gymnasium,BW
Steinweg 8 91567 Herrieden,09825 4962,false,BY-6727,49.237197,10.497239,Volksschule Herrieden,6727,09825 219,Grund- und Hauptschule,Grund- und Hauptschule,BY

使用 3.12 的代码:.ipynb

import polars as pl
df = pl.read_csv("data.csv", has_header=True, columns=["address", "id", "lat", "lon", "name", "state"], encoding="utf8", separator=",",)
df = df.unique(subset=["id"])
df = df.drop_nulls(subset=["id", "lat", "lon"])
df = df.with_columns(pl.col(["address"]).str.replace_all('"', '',))
df = df.sort(by="id")
df.write_csv("data-clean.csv",)

输出 :data-clean.csv

address,id,lat,lon,name,state
"Rombacher Straße 30, 73430 Aalen",BW-75774,48.838598,10.08184,Schubart-Gymnasium Partnerschule für Europa,BW
Steinweg 8 91567 Herrieden,BY-6727,49.237197,10.497239,Volksschule Herrieden,BY
字符串 引号 python-polars

评论


答: 暂无答案