我想在 Pandas DataFrame 中找到连续 NaN 的那些索引,其中超过 3 个连续 NaN 返回它们的大小。那是:
58234 NaN
58235 NaN
58236 0.424323
58237 0.424323
58238 NaN
58239 NaN
58240 NaN
58241 NaN
58242 NaN
58245 NaN
58246 1.483380
58247 1.483380
Run Code Online (Sandbox Code Playgroud)
应该返回类似 (58238, 6) 的内容。返回的实际格式并不重要。我发现了以下内容。
df.a.isnull().astype(int).groupby(df.a.notnull().astype(int).cumsum()).sum()
Run Code Online (Sandbox Code Playgroud)
但它没有为每个索引返回正确的值。这个问题可能与用熊猫识别连续的 NaN非常相似, 但任何帮助都将不胜感激,因为我是熊猫的菜鸟。
我正在处理时间序列数据。我在从数据帧列中删除小于或等于阈值的连续 NaN 时遇到问题。我尝试查看一些链接,例如:
使用 pandas 识别连续 NaN:识别连续 NaN 出现的位置以及计数。
Pandas:NaN 洞的游程长度:输出 NaN 的游程长度编码
这条路上还有很多其他人,但没有一个人真正告诉我们在识别后如何删除它们。
我找到了一个类似的解决方案,但它是在 R 中: 如何删除列中超过 2 个连续的 NA?
我想要Python的解决方案。
所以这是一个例子:
这是我的数据框列:
a
0 36.45
1 35.45
2 NaN
3 NaN
4 NaN
5 37.21
6 35.63
7 36.45
8 34.65
9 31.45
10 NaN
11 NaN
12 36.71
13 35.55
14 NaN
15 NaN
16 NaN
17 NaN
18 37.71
Run Code Online (Sandbox Code Playgroud)
如果 k = 3,我的输出应该是:
a
0 36.45
1 35.45
2 37.21
3 35.63
4 36.45 …Run Code Online (Sandbox Code Playgroud) 我有一个缺少值的数据框。我想找到连续缺失值的数量及其计数。以下是我期望的示例数据和示例结果
Sample data
Timestamp X
2018-01-02 00:00:00 6
2018-01-02 00:05:00 6
2018-01-02 00:10:00 4
2018-01-02 00:15:00 nan
2018-01-02 00:20:00 nan
2018-01-02 00:25:00 3
2018-01-02 00:30:00 4
2018-01-02 00:35:00 nan
2018-01-02 00:40:00 nan
2018-01-02 00:45:00 nan
2018-01-02 00:50:00 nan
2018-01-02 00:55:00 nan
2018-01-02 01:00:00 nan
2018-01-02 01:05:00 2
2018-01-02 01:10:00 4
2018-01-02 01:15:00 6
2018-01-02 01:20:00 6
2018-01-02 01:25:00 nan
2018-01-02 01:30:00 nan
2018-01-02 01:35:00 6
2018-01-02 01:40:00 nan
2018-01-02 01:45:00 nan
2018-01-02 01:50:00 6
2018-01-02 01:55:00 6
2018-01-02 02:00:00 nan …Run Code Online (Sandbox Code Playgroud)