2
编辑日期: 2024-11-28 文章阅读: 次
小技巧2: 使用 replace 和正则清洗数据
Pandas 的强项在于数据分析,自然就少不了数据清洗。 今天学习一个快速清洗数据的小技巧,在某列上使用 replace 方法和正则,快速完成值的清洗。 源数据:
d = {"customer": ["A", "B", "C", "D"],
"sales":[1100, "950.5RMB", "$400", " $1250.75"]}
df = pd.DataFrame(d)
df
打印结果:
customer sales
0 A 1100
1 B 950.5RMB
2 C $400
3 D $1250.75
看到 sales 列的值,有整型,浮点型+RMB后变为字符串型,还有美元+整型,美元+浮点型。
我们的目标:清洗掉 RMB
,$
符号,转化这一列为浮点型。
一行代码搞定:(点击代码区域,向右滑动,查看完整代码)
df["sales"] = df["sales"].replace("[$,RMB]","", regex = True).astype("float")
使用正则替换,将要替换的字符放到列表中 [$,RMB]
,替换为空字符,即 ""
;
最后使用 astype
转为 float
打印结果:
customer sales
0 A 1100.00
1 B 950.50
2 C 400.00
3 D 1250.75
如果不放心,再检查下值的类型:
df["sales"].apply(type)
打印结果:
0 <class 'float'>
1 <class 'float'>
2 <class 'float'>
3 <class 'float'>