Python 组合序号

python 复制代码
import pandas as pd  
  
# 创建一个示例数据框  
data = {  
    'group': ['A', 'A', 'A', 'B', 'B', 'C', 'C', 'C', 'C'],  
    'value': [3, 1, 2, 5, 4, 6, 9, 7, 8]  
}  
df = pd.DataFrame(data)  
  
# 先按group分组,再按value列升序排序  
df_sorted_asc = df.sort_values(by=['group', 'value'])  
  
# 使用groupby和cumcount为每组内按value升序分配一个序号  
df_sorted_asc['group_rank_asc'] = df_sorted_asc.groupby('group').cumcount() + 1  
  
print(df_sorted_asc)

# 先按group分组,再按value列降序排序  
df_sorted_desc = df.sort_values(by=['group', 'value'], ascending=[True, False])  
  
# 使用groupby和cumcount为每组内按value降序分配一个序号  
df_sorted_desc['group_rank_desc'] = df_sorted_desc.groupby('group').cumcount() + 1  
  
print(df_sorted_desc)
相关推荐
yuanpan1 分钟前
23种设计模式之《组合模式(Composite)》在c#中的应用及理解
开发语言·设计模式·c#·组合模式
wang_yb2 分钟前
『Python底层原理』--Python属性的工作原理
python·databook
量化投资技术6 分钟前
【量化策略】趋势跟踪策略
python·量化交易·量化·量化投资·qmt·miniqmt
BanLul11 分钟前
进程与线程 (三)——线程间通信
c语言·开发语言·算法
十八朵郁金香16 分钟前
【JavaScript】深入理解模块化
开发语言·javascript·ecmascript
Hello.Reader24 分钟前
深入理解 Rust 的 `Rc<T>`:实现多所有权的智能指针
开发语言·后端·rust
程序员阿鹏27 分钟前
jdbc批量插入数据到MySQL
java·开发语言·数据库·mysql·intellij-idea
yoona102027 分钟前
Rust编程语言入门教程(八)所有权 Stack vs Heap
开发语言·后端·rust·区块链·学习方法
莲动渔舟29 分钟前
国产编辑器EverEdit - 在编辑器中对文本进行排序
java·开发语言·编辑器
伊一大数据&人工智能学习日志35 分钟前
自然语言处理NLP 04案例——苏宁易购优质评论与差评分析
人工智能·python·机器学习·自然语言处理·数据挖掘