Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 获取数据帧中最大连续空行数_Python_Python 3.x_Pandas - Fatal编程技术网

Python 获取数据帧中最大连续空行数

Python 获取数据帧中最大连续空行数,python,python-3.x,pandas,Python,Python 3.x,Pandas,我有一个数据框架,在这个数据框架中,我需要通过开始日期和结束日期获得更大的空行序列,以便进一步研究。我的索引是DatatimeIndex对象,DataFrame如下所示: C Instalation N Serial Number D Register Read \ Z Ts Read 2016-12-2

我有一个数据框架,在这个数据框架中,我需要通过开始日期和结束日期获得更大的空行序列,以便进一步研究。我的索引是DatatimeIndex对象,DataFrame如下所示:

                           C Instalation  N Serial Number D Register Read  \
Z Ts Read                                                                    
2016-12-25 00:00:00  PT0002000080299561BD   10101516046456              A+   
2016-12-25 00:15:00  PT0002000080299561BD   10101516046456              A+   
2016-12-25 00:30:00  PT0002000080299561BD   10101516046456              A+   
2016-12-25 00:45:00  PT0002000080299561BD   10101516046456              A+   
2016-12-25 01:00:00  PT0002000080299561BD   10101516046456              A+   

                    M Read D Read Unit  
Z Ts Read                               
2016-12-25 00:00:00  0,002         kWh  
2016-12-25 00:15:00  0,002         kWh  
2016-12-25 00:30:00  0,002         kWh  
2016-12-25 00:45:00  0,002         kWh  
2016-12-25 01:00:00  0,002         kWh 
NaN值可以分散在数据帧的列中,没有问题。但我不介意它们是否连续。在这种情况下,我想知道每一行至少有一个NaN值,开始和结束
索引
,并计算两者之间的范围差。最后我想得到更大的范围


有可能做到这一点吗?

我不确定我是否理解Q 100%,但也许这就是您想要的:

df = pd.DataFrame({"a": [1, 2, 3, np.nan, np.nan, np.nan, 7, 8], "b": [1, 2, 3, np.nan, 5, 6, 7, 8]}

print df

     a    b
0  1.0  1.0
1  2.0  2.0
2  3.0  3.0
3  NaN  NaN
4  NaN  5.0
5  NaN  6.0
6  7.0  7.0
7  8.0  8.0

counts = df.isnull()
counts[~counts] = np.nan
print counts

    a    b
0  NaN  NaN
1  NaN  NaN
2  NaN  NaN
3  1.0  1.0
4  1.0  NaN
5  1.0  NaN
6  NaN  NaN
7  NaN  NaN

runs = counts.cumsum()
print runs

     a    b
0  NaN  NaN
1  NaN  NaN
2  NaN  NaN
3  1.0  1.0
4  2.0  NaN
5  3.0  NaN
6  NaN  NaN
7  NaN  NaN

runs.max(axis=0)

a    3.0
b    1.0
dtype: float64

可能
dropna
并检查
Z Ts Read
中的间隙?丢弃NaN值我在时间戳序列中造成了中断,但我很难获得
delta
时间..:/你能举一个输出的例子吗?我无法理解你所说的按开始日期和结束日期排列的空行的大序列是什么意思。谢谢@pansen。我已经编辑了这个问题。这样可以吗?如果这个答案不能解决你的问题,请检查一个。将这两种想法结合起来可以解决很多问题。