啊啊啊啊啊吖

2019-03-14   阅读量: 579

数据分析师 Python数据分析

在特定值之前选择行的子集的Pandas发生在另一列中

扫码加入数据分析学习群

我希望在列Y,groupby列X中出现值之前从我的数据框中提取行的子集。

例如,在这种情况下,对于X中的每个唯一值,我想在Y中出现'1'之前提取所有行,并且输出应该包括遇到第一个'1'的行。

X Y Z

index

0 A 0 56

1 A 0 67

2 A 1 66

3 A 0 83

4 A 1 88

5 B 0 52

6 B 1 66

7 B 1 70

8 C 0 68

9 C 0 72

10 D 1 65

我想要的输出是:

X Y Z

index

0 A 0 56

1 A 0 67

2 A 1 66

5 B 0 52

6 B 1 66

8 C 0 68

9 C 0 72

10 D 1 65

解决办法:您可以使用groupby和apply使用cumsum()x2技巧:

df[df.groupby('X').Y.apply(lambda x: x.cumsum().cumsum()).le(1)]

X Y Z

index

0 A 0 56

1 A 0 67

2 A 1 66

5 B 0 52

6 B 1 66

8 C 0 68

9 C 0 72

10 D 1 65

0.0000 0 2 关注作者 收藏

评论(0)


暂无数据

推荐课程

推荐帖子