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)
| 归档时间: |
|
| 查看次数: |
3403 次 |
| 最近记录: |