首页 > 解决方案 > 根据另一个具有不同大小python的列表替换nan的列表

问题描述

我想用第二个列表中的值替换列表中的 nan,该列表中的元素数量与第一个列表中的 nan 的数量完全相同。

mylist1 = list([1, 2, 3, np.nan, np.nan, 4, np.nan, 5])

mylist2 = list([-10, -11, -12])

我想要的是:

mylist1 = [1, 2, 3, -10, -11, 4, -12, 5] 

标签: pythonnumpynandata-cleaning

解决方案


由于您已经使用 numpy (np.nan在那里),您应该使用 ndarrays,而不是列表。但如果你愿意,你可以转换回来:

>>> a = np.array(mylist1)
>>> a[np.isnan(a)] = mylist2
>>> a.astype(int).tolist()
[1, 2, 3, -10, -11, 4, -12, 5]

推荐阅读