熊猫:求和满足条件的连续行

时间:2021-03-02 14:57:17

标签: python pandas dataframe

我有一个格式为熊猫的数据框

<头>
索引 价值 条件
0 11 错误
1 12 真的
2 13 真的
3 14 错误
4 15 真的
5 16 真的
6 17 真的
7 18 错误

我的目标是获取满足条件的连续行组的值的所有差异,即在此示例中,我想要一个列表 [13 - 12, 17 - 15]。大熊猫有没有一种有效的方法来做到这一点?

1 个答案:

答案 0 :(得分:3)

您可以在condition列上取cumsum来确定满足条件的行的blocks,然后在这些{{1}列上groupvalue }} 和 blocks 使用 numpy.ptp

agg

详情:

m = df['condition']
blocks = (~m).cumsum()[m]
lst = list(df['value'].groupby(blocks).agg(np.ptp))