Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/276.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 模糊匹配数据帧中的值,然后替换该值的最佳方法?_Python_Pandas - Fatal编程技术网

Python 模糊匹配数据帧中的值,然后替换该值的最佳方法?

Python 模糊匹配数据帧中的值,然后替换该值的最佳方法?,python,pandas,Python,Pandas,我正在使用一个包含客户数据的各种数据点的数据框架。我正在寻找一个空白值来替换任何垃圾电话号码,现在我正在努力找到一种有效的方法来查找潜在的垃圾值,比如像111-111-1111这样的电话号码,并用一个空白条目替换该特定值 我目前有一个相当丑陋的解决方案,我要通过3个领域;家庭电话、手机和工作电话,定位相关行和相应列的索引值,然后替换它们 关于在数据帧中实际查找垃圾值,有没有比我目前所做的更好的方法 row_index = dataset[dataset['phone'].str.contains

我正在使用一个包含客户数据的各种数据点的数据框架。我正在寻找一个空白值来替换任何垃圾电话号码,现在我正在努力找到一种有效的方法来查找潜在的垃圾值,比如像111-111-1111这样的电话号码,并用一个空白条目替换该特定值

我目前有一个相当丑陋的解决方案,我要通过3个领域;家庭电话、手机和工作电话,定位相关行和相应列的索引值,然后替换它们

关于在数据帧中实际查找垃圾值,有没有比我目前所做的更好的方法

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()
的文档,我想这就是问题所在。