我有一个看起来像
的DataFrame{
"type": {
"1590160049809": "boot",
"1590160054895": "pick",
"1590160057156": "pick",
"1590160718705": "stop",
"1590160772315": "boot",
"1590160777015": "pick",
"1590160785481": "pick"
},
"boot time": {
"1590160049809": "1590160049.809339046",
"1590160054895": null,
"1590160057156": null,
"1590160718705": null,
"1590160772315": "1590160772.315527916",
"1590160777015": null,
"1590160785481": null
},
"capture time": {
"1590160049809": null,
"1590160054895": "1590160054.895216",
"1590160057156": "1590160057.156712",
"1590160718705": null,
"1590160772315": null,
"1590160777015": "1590160777.015709",
"1590160785481": "1590160785.481504"
},
"end run time": {
"1590160049809": null,
"1590160054895": null,
"1590160057156": null,
"1590160718705": "1590160718.705250978",
"1590160772315": null,
"1590160777015": null,
"1590160785481": null
}
}
如果没有boot
,则部分以end
开头,也可以不以end
结尾,那么我应该选择系列中的最后一个pick
。 / p>
我想做的是计算每个部分的时间。所以类似totalTime = end.timestamp - boot.timestamp
或end
不在pick.timestamp - boot.timestamp
我在想什么
df[boot[n]:boot[n+1]]
boots = df[df["type"] == "boot"]
for i, boot in enumerate(boots, start=1):
section = df[boots.iloc[0].name:boots.iloc[1].name][:-1]
print(section.iloc[-1].name - section.iloc[0].name)
这给了我想要的东西,但感觉就像我在做很多额外的工作。同样,将DataFrame拆分为boot, pick, ..., pick, [end]
的块也很好,我只是很容易地在列上拆分而没有看到行。
有没有办法对熊猫做这种事?