使用Pandas和有效值列表检测CSV列中的拼写错误

1 投票
1 回答
1455 浏览
提问于 2025-04-18 06:04

我有一些数据在一个CSV文件里,我想对这些数据进行分析,以检查数据的质量。我使用Pandas是因为从CSV文件中加载数据非常简单。

我想知道有什么最有效的方法来比较一个系列中的所有值,看看它们是否存在于另一个值的列表中?这样做是为了检查CSV文件中的错误。之后我会用这些值来清理数据。数据可能会非常庞大。

举个例子。

我有一个CSV文件,里面包含了人们填写的居住的郊区名称。很多这些名称是手动输入的,可能会有拼写错误、打字错误等问题。

为了检查这些,我有一个包含有效郊区名称的列表。我会遍历系列中的每个值,并将其与有效郊区名称列表中的每个值进行比较。然后返回所有不合法的唯一值。

  1. 从CSV文件中读取值

    df = read_csv(“user_address”)
    
  2. 提取我想要处理的系列(郊区),并获取系列中的所有唯一字符串,以减少需要比较的数量

    series = df['Suburb'].unique()
    
  3. 遍历每个唯一字符串,看看它是否与列表中的有效郊区名称匹配

    L = ......list of suburbs
    
    for value in series:
         if value not in L:
             print value #Will use value for something more in reality
    
  4. 返回那些与有效郊区名称不匹配的字符串

1 个回答

1

isin() 方法是 pandas 库里的一部分,它的作用是把某一列的数据和一组值进行比较。如果 pandas 数据框中的某个值在这组值里,就返回 True,如果不在,就返回 False

values_not_in_array = df[~df.Suburb.isin(L)].Suburb
values_in_array = df[df.Suburb.isin(L)].Suburb

撰写回答