这是我的DataFrame:
import pandas as pd
df = pd.DataFrame(
{
'x': ['a', 'b', 'c', 'c', 'e', 'f', 'd', 'a', 'b', 'c', 'c', 'e', 'f', 'd'],
'y': ['a', 'a', 'a', 'a', 'b', 'b', 'b', 'f', 'f', 'f', 'f', 'g', 'g', 'g'],
}
)
这是我想要的输出:
x y
0 a a
1 b a
2 c a
3 c a
7 a f
8 b f
9 c f
10 c f
x y
4 e b
5 f b
6 d b
11 e g
12 f g
13 d g
以下是需要采取的步骤:
(a)Groupby y
b)Groupby最后一行x
基本上,分组是:
df1 = df.groupby('y').filter(lambda g: g.x.iloc[-1] == 'c')
df2 = df.groupby('y').filter(lambda g: g.x.iloc[-1] == 'd')
在这个例子中,我知道我在最后一行中有两个不同的值,它们是c
和d
,这就是为什么我可以filter
个它们,但在我的数据中我不知道这一点.