熊猫系列的多次搜索/替换

数据挖掘 Python 熊猫
2021-10-04 16:12:23

我有一个以学校名称作为列之一的熊猫数据框。但是,学校名称中有很多拼写错误,例如:

“Abernethy Elem 学校”、“Abernethy 小学”、“BOISE/ELIOT ELEM SCHOOL”、“Boise/Eliot 小学”、“Boise-Eliot 小学”......

我正在尝试通过这样做来清理名称:

school_perf_report["SCHLNM"] = school_perf_report["SCHLNM"].str.lower().str.replace(r"elementary","elem").str.replace(r"/"," ").str.replace("-"," ").str.replace(r"\s+"," ")

有没有更简洁的方法来执行相同的操作?基本上

  1. 将“基本”更改为“elem”
  2. 删除 / 或 - 并用空格替换它们。
  3. 删除多个空格
  4. 全部小写

谢谢

1个回答

为字符串替换创建一个定义:

def change_string(x):
    return x.replace('|', '_').replace("elementary","elem").replace('old_value', 'new_value)

然后使用 map 命令对整列进行操作:

# You could create a new column to check whether the output is as expected
# If it is as expected, you could modify the original column
school_perf_report["SCHLNM_MODIFIED"] = school_perf_report["SCHLNM"].map(lambda x: change_string(x))

希望这可以帮助。