我最近在這里問了一個關于 pandas 中缺失值的問題,并被定向到一個github 問題。通讀該頁面和丟失的數據文檔后。我很奇怪,為什么merge和join治療的NaN作為比賽時“都比不上等于”:np.nan != np.nan# merge exampledf = 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 col30 NaN 1 3# join example with same dataframes from abovedf.set_index('col1').join(df2.set_index('col1')) col2 col3col1 NaN 1 3.0match 2 NaN但是,groupby排除了NaN :df = pd.DataFrame({'col1':[np.nan, 'match', np.nan], 'col2':[1,2,1]})df.groupby('col1').sum() col2col1 match 2當然你可以dropna(),df[df['col1'].notnull()]但我很好奇為什么 NaN 被排除在一些 Pandas 操作中,groupby而不是像merge, join, update, 和map?從本質上講,正如我上面問,為什么不merge和join匹配np.nan時,他們不這樣做比較相等?
添加回答
舉報
0/150
提交
取消