我有一個包含約80個特徵的.txt
數據集,其中看起來"NA"
被用作缺失值的指標以及特定的實際值序串特點,如:作爲缺失值和有序特徵值處理「NA」
什麼是處理這個問題的最好方法?
默認情況下,熊貓將這些"NA"
值轉換爲"nan"
。我讀了如何通過從列表中刪除na_vals
像"NA"
因此停止這樣的:
na_vals = ['-1.#IND', '1.#QNAN', '1.#IND', '-1.#QNAN', '#N/A', 'N/A', 'NA', '#NA', 'NULL', 'NaN', '-NaN', 'nan', '-nan']
na_vals.remove("NA")
data = pd.read_table('data/AmesHousing.txt', delimiter="\t", keep_default_na=False, na_values=na_vals)
但後來,我應該手動"nan"
替換"NA"
值爲每個功能對於這"NA"
不是可能的價值?如果是這樣,這是如何完成的?如果沒有,那麼這樣做的更好方法是什麼?謝謝!
編輯:我要澄清,我做了"NA"
也用於遺漏值的假設,因爲如果我從na_values
列表中刪除"NA"
,data.isnull().sum().sum()
回報0
。所以我猜想我的假設是正確的,或者在整個數據集中實際上沒有缺失值。我不知道如何確定這些是真的。 The dataset description page can be found here.
我不認爲這可以很容易地完成,除非你有一個明確的算法,它可以區分哪個'NA'是'沒有Basement'和哪個是'NaN'。如果您可以使用不同的值來顯示'NaN' - 那麼您可以輕鬆解決這個問題。作爲最後的手段,你可以嘗試建立一個神經網絡並進行訓練,但我不確定它是否值得... ;-) – MaxU
@MaxU我的解決方案涉及一個帶有長度爲零的隱藏層的神經網絡( - : – piRSquared