我最近在这里问了一个关于 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
提交
取消