我有一个数据帧(超过150行和16列),其multiindex
如下所示:
a001 a002 a003 a004 a005
Year Week
2017 1 0 1 1 3 0
2 1 2 2 4 0
3 2 0 3 5 0
4 0 0 4 0 0
5 0 1 5 0 0
6 0 2 6 1 0
7 0 0 7 2 0
8 1 0 0 3 0
9 2 0 0 0 0
10 3 2 0 0 0
我想要的是在下一行中,每列只有0之前的最后一个数字:
a001 a002 a003 a004 a005
Year Week
2017 1 0 0 0 0 0
2 0 0 0 0 0
3 0 2 0 0 0
4 2 0 0 5 0
5 0 0 0 0 0
6 0 0 0 0 0
7 0 2 0 0 0
8 0 0 7 0 0
9 0 0 0 3 0
10 0 0 0 0 0
我开始尝试使用mask
,但后来我被绊倒了
for i in column:
mask = (df[i] < df[i].shift())
print mask
有人能在这方面提供帮助吗?或者有其他的解决办法吗?提前谢谢
我认为需要比较两个连续的} ,^{} 替换另一个值到} 将
0
,用^{0
,用^{NaN
s转换成0
,最后转换成integer
:编辑:
感谢@Joe简化代码:
相关问题 更多 >
编程相关推荐