Pandas如何基于交替分组规则对DataFrame行进行重排序
Pandas 按分组交替重排序实现方案
核心逻辑是先为每个分组内的行生成组内顺序编号,再优先按该编号、其次按分组字段排序,即可得到交替展示分组的效果。
完整可运行代码如下:
import pandas as pd # 构造你的原始DataFrame df = pd.DataFrame({ 'name': ['a', 'd', 'b', 'e', 'c', 'f'], 'value': [10, 20, 20, 10, 30, 30], 'group': ['group 1', 'group 1', 'group 2', 'group 2', 'group 3', 'group 3'] }) # 核心处理:生成组内序号后排序 df['inner_rank'] = df.groupby('group').cumcount() result = df.sort_values(by=['inner_rank', 'group']).drop(columns='inner_rank').reset_index(drop=True) # 打印结果验证 print(result)
运行后输出的结果和你期望的完全一致:
name value group 0 a 10 group 1 1 b 20 group 2 2 c 30 group 3 3 d 20 group 1 4 e 10 group 2 5 f 30 group 3
内容的提问来源于stack exchange,提问作者Santoo
相关产品推荐
相关产品推荐

