我有一個數據表,我試圖「標準化」。輸入到表格中的數據不是靜態的或標準化的(例如使用下拉列表的答案),給我留下多種不同的答案,我想要一個靜態的通用答案。如何標準化用戶輸入的數據?
例如,讓我們說,有一個名爲「寵物類型」的數據庫中的列。由於用戶輸入不是標準化的,人們可以輸入特定類型寵物的變體,而不是寵物的一般形式。因此,不是僅僅輸入「狗」,而是有不同版本的狗,如「牧羊犬」,「馬特」,「拉布拉多」等。
我該如何將這些答案轉化爲它們的概括形式 -/Mutt/Labrador/etc只用「狗」(或「貓」,或「鳥」等)在表格中回答?
我知道需要某種形式的手動輸入「翻譯」功能。我的直覺反應是,堆疊式if語句的長期列表效率不高,並且很難控制和擴展。
有沒有某種過程或系統來做這樣的事情?像某種類型的查找表系統/矩陣?
我假設foreach循環通過記錄的陣列來迭代是最合適的。然後在foreach循環的每一次迭代中,你都會對pet變量進行測試/比較(我會手動創建) - 但是你會用這個查找表/列表來做什麼?或者這個過程的這一步?你會把它作爲某種類型的SQL數據庫/表格,數組,CSV文件等嗎?然後,一旦這個比較完成並且確定了寵物類型的「翻譯」等價物,那麼foreach循環將更新該記錄的特定行,或者覆蓋舊的非標準化值,或者可能只是增加將新的標準化等值轉換爲新的列(供以後驗證)。
如何創建一些類型的比較列表/表/數組/ /等,可以處理大量的數據? (雖然意識到我一定要在某個時候手動清理記錄,比如奇怪或者名字未包含在比較表/函數中的稀有品種) – Coldblackice
我的建議是,如果您已經決定這必須清理乾淨,現在最好在它變得更大或更難做之前進行。即使您創建了比較列表,您仍然需要花費大量時間並單獨瀏覽每個條目。爲什麼不現在就做真正需要做的事情? – sosborn
我完全同意 - 沒有更多的數據是以動態方式進入的。但是,隨着數千和數千條記錄已經存在於數據庫中,手動完成所有操作需要花費更長的時間,而對於可以處理大部分轉換的簡單類型的自動轉換而言。然後,當然,我會過濾出未使用比較函數處理的標記的散點圖,並將它們(非關鍵數據)放在一起或單獨修復它們。 – Coldblackice