相关疑难解决方法(0)

为什么熊猫在NaN上合并?

我最近在这里问了一个关于大熊猫遗失值的问题,并且是针对github问题的.阅读完该页面和缺少的数据文档.

我想知道为什么merge并且join当"他们不比较平等"时将NaNs视为匹配:np.nan != np.nan

# 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

# join example with same dataframes from above
df.set_index('col1').join(df2.set_index('col1'))

      col2  col3
col1        
NaN     1   3.0
match   2   NaN
Run Code Online (Sandbox Code Playgroud)

但是,NaNs groupby排除在外:

df = pd.DataFrame({'col1':[np.nan, 'match', np.nan], 'col2':[1,2,1]})
df.groupby('col1').sum()

       col2
col1    
match   2
Run Code Online (Sandbox Code Playgroud)

当然你也可以dropna()或者df[df['col1'].notnull()]不过我很好奇,为什么NaN是排除像一些熊猫的操作groupby,而不是其他人一样merge,join …

python python-3.x pandas

17
推荐指数
1
解决办法
622
查看次数

标签 统计

pandas ×1

python ×1

python-3.x ×1