在Pandas中pd.Nan != pd.Nan
,但是現在,合并到資料框,Nan 將合并在一起。
正如問題為什么熊貓在 NaN 上合并?,正常的行為應該是不合并。這個問題在 Pandas 問題跟蹤器上進行了討論。
來自 It_is_chris:
# merge example df = pd.DataFrame({'col1':[np.nan, 'match'], 'col2':[1,2]}) df2 = pd.DataFrame({'col1':[np.nan, 'no match'], 'col3':[3,4]}) pd.merge(df,df2, on='col1') col1 col2 col3 0 NaN 1 3
現在我們知道了,在我的代碼中,我還需要在 Nan 上進行合并。我可以使用 Pandas 中的故障,但在未來,行為會改變然后破壞我的代碼嗎?
防止這種情況的最佳選擇是什么?
謝謝
uj5u.com熱心網友回復:
正如您正確指出的那樣,將來有可能無法加入 NaN。根據編程語言,此行為會發生變化。
最簡單的面向未來的解決方案是將 NaN 替換為“NA”或類似的字串。如果需要,您可以在合并后將其替換回 NaN。
df = pd.DataFrame({'col1':[np.nan, 'match'], 'col2':[1,2]}).fillna("NA")
df2 = pd.DataFrame({'col1':[np.nan, 'no match'], 'col3':[3,4]}).fillna("NA")
pd.merge(df,df2, on='col1')
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/427050.html
上一篇:為什么我收到錯誤“'str'物件沒有屬性'str'”?我只是想在包含文本的列中檢查“confirmeddtc”
下一篇:日軸上的Python繪圖類別