【发布时间】:2014-07-19 08:42:11
【问题描述】:
熊猫合并功能似乎有一个怪癖。它认为NaN 值相等,并将NaNs 与其他NaNs 合并:
>>> foo = DataFrame([
['a',1,2],
['b',4,5],
['c',7,8],
[np.NaN,10,11]
], columns=['id','x','y'])
>>> bar = DataFrame([
['a',3],
['c',9],
[np.NaN,12]
], columns=['id','z'])
>>> pd.merge(foo, bar, how='left', on='id')
Out[428]:
id x y z
0 a 1 2 3
1 b 4 5 NaN
2 c 7 8 9
3 NaN 10 11 12
[4 rows x 4 columns]
这与我见过的任何 RDB 不同,通常缺失的值会被视为不可知论,并且不会像它们相等一样合并在一起。这对于具有稀疏数据的数据集尤其成问题(每个 NaN 都将合并到每个其他 NaN,从而产生巨大的 DataFrame!)
有没有办法在合并过程中忽略缺失值而不先将它们切掉?
【问题讨论】:
标签: python merge pandas missing-data