我正在阅读一堆CSV文件(水位随时间变化的测量数据),对它们进行各种分析和可视化.
由于我无法控制的各种原因,这些时间序列通常会丢失数据,所以我做了两件事:
我总计算他们
Rlength=len(RainD) #counts everything, including NaN
Rcount=RainD.count() #counts only valid numbers
NaN_Number=Rlength-Rcount
Run Code Online (Sandbox Code Playgroud)
如果我有比特定阈值更多的缺失数据,则丢弃数据集:
Percent_Data=Rlength/100
Five_Percent=Percent_Data*5
if NaN_Number > Five_Percent:
...
Run Code Online (Sandbox Code Playgroud)
如果NaN的数量足够小,我想填补空白
RainD.level=RainD.level.fillna(method='pad',limit=2)
Run Code Online (Sandbox Code Playgroud)
现在问题是:它的月度数据,所以如果我有超过2个连续NaN,我也想丢弃数据,因为这意味着我"猜测"整个赛季,甚至更多.
在对文件fillna并没有真正提比我更连续NaN的规定时有发生的事情limit=2,但是当我看到RainD.describe()之前和之后...fillna...,它与基本CSV比较,其明确表示,它填补了前2 NaN的,然后离开休息,而不是错误.
所以,长话短说:
如何用熊猫识别一些连续的NaN,没有一些复杂和耗时的非熊猫循环?