熊猫获得元素直到价值变化

时间:2015-06-30 07:57:18

标签: python python-2.7 pandas dataframe

我正在使用Pandas的大型数据框,我需要拥有所有元素,直到一个值发生变化。例如:

e1    e2
1     15
1     16
1     17
0     14
0     13
0     14
1     16
1     15

这里我想要前三个元素,然后是接下来的三个元素,然后是最后两个元素。 我想知道是否有一种熊猫的方法。

1 个答案:

答案 0 :(得分:5)

您需要对DataFrame进行一些转换才能获得所需的信息。

我会这样做:

df["e3"] = df["e1"].shift(1)
df["e4"] = df["e1"] != df["e3"]
df["e5"] = df["e4"].cumsum()
df

    e1  e2  e3      e4      e5
0   1   14  NaN     True    1
1   1   15  1       False   1
2   1   15  1       False   1
3   0   16  1       True    2
4   0   1   0       False   2
5   0   15  0       False   2
6   1   15  0       True    3
7   1   16  1       False   3

了解e5现在如何唯一地命名每个组。

现在我们可以使用groupby函数来获取每个组,如下所示:

groups = df.groupby("e5")

并对群组执行操作