Python 模糊匹配数据帧中的值,然后替换该值的最佳方法?
我正在使用一个包含客户数据的各种数据点的数据框架。我正在寻找一个空白值来替换任何垃圾电话号码,现在我正在努力找到一种有效的方法来查找潜在的垃圾值,比如像111-111-1111这样的电话号码,并用一个空白条目替换该特定值 我目前有一个相当丑陋的解决方案,我要通过3个领域;家庭电话、手机和工作电话,定位相关行和相应列的索引值,然后替换它们 关于在数据帧中实际查找垃圾值,有没有比我目前所做的更好的方法Python 模糊匹配数据帧中的值,然后替换该值的最佳方法?,python,pandas,Python,Pandas,我正在使用一个包含客户数据的各种数据点的数据框架。我正在寻找一个空白值来替换任何垃圾电话号码,现在我正在努力找到一种有效的方法来查找潜在的垃圾值,比如像111-111-1111这样的电话号码,并用一个空白条目替换该特定值 我目前有一个相当丑陋的解决方案,我要通过3个领域;家庭电话、手机和工作电话,定位相关行和相应列的索引值,然后替换它们 关于在数据帧中实际查找垃圾值,有没有比我目前所做的更好的方法 row_index = dataset[dataset['phone'].str.contains
row_index = dataset[dataset['phone'].str.contains('11111')].index
column_index = dataset.columns.get_loc('phone')
之后,我将使用dataset.iat[row\u index,column\u index]=''压缩这些数据并循环遍历for循环。行和列索引变量还将在“手机”和“工作电话”列中附加垃圾值。Pandas“where”函数往往很快:
dataset['phone'] = dataset['phone'].where(~dataset['phone'].str.contains('11111'),
None)
这对实际查找垃圾值没有帮助,但这里有一种更简单的替换方法:
dataset.loc[dataset[“phone”].map(is_junk),“phone”]=”
。我来试一试!你知道我为什么会出现以下错误吗?下面是我如何实现它的。dataset.loc[dataset[“phone”].astype(str).map('1111111'),“phone”]=“但是它返回了TypeError:'str'对象不可调用查看map()
的文档,我想这就是问题所在。