Pandas groupby 顺序值

Jur*_*rgy 6 python pandas pandas-groupby

我不知道如何调用这个操作,所以我无法真正用谷歌搜索任何东西,但这是我想要做的:

我有这个数据框:

df = pd.DataFrame({"name": ["A", "B", "B", "B", "A", "A", "B"], "value":[3, 1, 2, 0, 5, 2, 3]})
df
  name  value
0    A      3
1    B      1
2    B      2
3    B      0
4    A      5
5    A      2
6    B      3
Run Code Online (Sandbox Code Playgroud)

我想对它进行分组df.name并应用一个max函数,df.values但前提是名称按顺序排列。所以我想要的结果如下:

df.groupby_sequence("name")["value"].agg(max)
  name  value
0    A      3
1    B      2
2    A      5
3    B      3
Run Code Online (Sandbox Code Playgroud)

任何线索如何做到这一点?

sac*_*cuL 12

使用pandas,您可以在名称逐行更改时进行(df.name!=df.name.shift()).cumsum()分组,使用,基本上将连续的名称组合在一起:

>>> df.groupby((df.name!=df.name.shift()).cumsum()).max().reset_index(drop=True)
  name  value
0    A      3
1    B      2
2    A      5
3    B      3
Run Code Online (Sandbox Code Playgroud)