2014-05-10 47 views
1

我有一些CSV數據需要運行某些分析,以檢查數據質量。由於從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

isin()方法可以實現這個要求,是大熊貓的一部分的字符串。它的功能是將一列與一個值數組進行比較,如果熊貓數據框中的值在數組中,則返回True,如果不是,則返回False

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