Python 获取数据帧中最大连续空行数
我有一个数据框架,在这个数据框架中,我需要通过开始日期和结束日期获得更大的空行序列,以便进一步研究。我的索引是DatatimeIndex对象,DataFrame如下所示: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
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。我已经编辑了这个问题。这样可以吗?如果这个答案不能解决你的问题,请检查一个。将这两种想法结合起来可以解决很多问题。