merage問題?
2019/10/11 上午 09:31
機器學習共學討論版
嚴詩豪
觀看數:32
回答數:2
收藏數:0
ml100-3
ml100-3-d29
程式碼:
df = pd.merge(df, temp, how='right',on=['Cabin'])
df = df.drop(['Cabin'] , axis=1)
df.head()
一直卡在這裡...我快瘋了
我只是要把df和temp合併起來啊...
df:
temp:
錯誤代碼:
回答列表
-
2019/10/11 上午 11:25陳明佑 (Ming You Chen)贊同數:1不贊同數:0留言數:0
同學不要心急,
以下提供兩個可能的方向你先試試看, 不行再來提問
可能性1.
你重複執行了這個區塊,
導致第二次以後 df 已經沒有 'Cabin' 這個欄位了, 因此出錯
[解法]
每次修改後, 如果懷疑是這類資料問題
都建議先按一下最上方的那顆按鍵 "restart the kernel (with dialog)"
然後從第一格重新跑一遍
這樣不僅左邊顯示的數字美觀, 可確保下次執行時有一樣的結果
也可排除這類重覆執行的問題
可能性2.
由於以 'Cabin' 欄位來說, df 有重複值, 而temp沒有
這時候你 merge 參數的 how='right', 意思是以 temp 的 index 為準
這時候如果碰到 temp 某一格, 比如說 Cabin='C85' 的位置時
由於 df 對應到 'C85' 的資料有兩個以上, 就會導致 merge 出現 Error
[解法]
請改成 how='left' 就可以了,
建議可以閱讀一下官方文件或做些實驗,
了解一下 ‘left’, ‘right’, ‘outer’, ‘inner’ 這些的作用方式與差距
-
2019/10/12 下午 09:56張維元 (WeiYuan)贊同數:0不贊同數:0留言數:0
嗨, Key Error 是因為兩個 df 的欄位對不起來。你想要做的是「左右合併」還是「上下合併」?