我正在研究住房資料集。以下是我的 CSV 檔案格式:
BHK Location Price
1 A 10
1 A 100
2 B 50
3 C 80
4 A 100
1 C 500
在某些情況下,據觀察,對于特定位置,BHK 值較低的房屋比 BHK 值較高的房屋成本更高。這顯然是一個錯誤。我想從我的資料集中洗掉這樣的條目。任何幫助,將不勝感激。
uj5u.com熱心網友回復:
您可以計算每組的最低價格并根據下一組進行過濾:
min_bhk = df.groupby('BHK')['Price'].min()
outliers = df['Price'].gt(df['BHK'].add(1).map(min_bhk))
df2 = df[~outliers]
輸出:
BHK Location Price
0 1 A 10
2 2 B 50
3 3 C 80
4 4 A 100
注意。在實際資料中,最小值/最大值可能不是最好的指標,您可能希望使用 1/99% 或 5/95% 分位數來代替
uj5u.com熱心網友回復:
這不是一個 Python 問題,而是一個統計問題。
識別例外值很棘手,一種方法可能是創建線性回歸Price ~ BHK Location并使用 Cooks 數來估計每個觀察值的影響。具有高影響力的觀察可以被標記為例外值并被排除在外。
如果您想要更簡單的東西,我會使用每個 BHK 的簡單最低/最高價格,然后使用.query()或其他東西來洗掉這些觀察結果。
轉載請註明出處,本文鏈接:https://www.uj5u.com/qianduan/449024.html
標籤:python-3.x 熊猫
下一篇:如何快速使撥動開關始終打開?
