我有以下熊猫的时间序列df:
date value
2015-01-01 0
2015-01-02 0
2015-01-03 0
2015-01-04 3
2015-01-05 0
2015-01-06 4
2015-01-07 0
我想删除前导零和尾随零,以便获得以下df:
date value
2015-01-04 3
2015-01-05 0
2015-01-06 4
简单地在它们中删除带有0的行会导致删除中间的0,这是我不想要的。
我想写一个前向循环,从第一行开始,然后继续到第一个非0值,第二个后向循环从末尾返回,在最后一个非0值处停止。但这似乎有些过分,有没有更有效的方法
一般解决方案返回空数据帧,如果数据中的所有} 过滤:
0
值与被测掩码的累计和不等于0
值,并且通过bitwise AND
链接的[::-1]
交换值并通过^{如果始终至少有一个非} 与^{} 一起使用,并且
^{} :
0
值是可能的,则将0
转换为缺少的值,并将^{另一个想法是使用^{} 或^{} :
您可以获得一个索引列表,其中值为>;大于0,然后查找
min
然后按如下方式过滤主df:
或者更好:
你会得到:
相关问题 更多 >
编程相关推荐