【发布时间】:2019-10-09 22:23:39
【问题描述】:
我想将连续的 NaN 值合并到切片中。有没有使用 numpy 或 pandas 的简单方法?
l = [
(996, np.nan), (997, np.nan), (998, np.nan),
(999, -47.3), (1000, -72.5), (1100, -97.7),
(1200, np.nan), (1201, np.nan), (1205, -97.8),
(1300, np.nan), (1302, np.nan), (1305, -97.9),
(1400, np.nan), (1405, -97.10), (1408, np.nan)
]
l = pd.Series(dict(l))
预期结果:
[
(slice(996, 999, None), array([nan, nan, nan])),
(999, -47.3),
(1000, -72.5),
(1100, -97.7),
(slice(1200, 1202, None), array([nan, nan])),
(1205, -97.8),
(slice(1300, 1301, None), array([nan])),
(slice(1302, 1303, None), array([nan])),
(1305, -97.9),
(slice(1400, 1401, None), array([nan])),
(1405, -97.1),
(slice(1408, 1409, None), array([nan]))
]
具有二维的 numpy 数组也可以,而不是元组列表
2019/05/31 更新:我刚刚意识到,如果我只使用字典而不是 Pandas 系列,算法效率会更高
【问题讨论】:
标签: python python-3.x pandas numpy nan