python - 如何在保持特定顺序的熊猫中分组?
问题描述
在 python 的 pandas 包中,我想分组,以便保持特定的顺序。下面的代码似乎可以做到这一点,但有更快/更简单的方法吗?还是可以保证 pandas 的 group by 功能保持源数据框中的记录顺序?
import pandas as pd
sep = ' - '
df1 = pd.DataFrame([[1,"apple",1],[1,"banana",3],[1,"pear",2],[2,"lemon",3],[2,"orange",1],[2,"apple",2]])
df1.columns = ["id","product","seq"]
df1 = df1.sort_values(by=["id","seq"])
pd.DataFrame(df1.groupby('id',as_index=False)['product'].apply(lambda x: sep.join(x)))
解决方案
使用参数sort=False
,DataFrame
也不需要构造函数:
df2 = df1.groupby('id', sort=False)['product'].apply(sep.join).reset_index()
print (df2)
id product
0 1 apple - pear - banana
1 2 orange - apple - lemon
推荐阅读
- regex - 使用 sed 向后删除特定的空格
- java - 插入排序的变量赋值问题
- python - 在 Django 中按标签过滤博客
- php - 显示带有复选框的数据库并将选定的数据查询到另一个 php 文件中
- c# - 变量不会在winforms中更新
- ios - 如何在我的 UITableViewCell 类的所有实例中访问模型类的一个特定实例的属性?
- algorithm - 网格中最长的“随机不相交”路径
- python - Python 中元编程的用例是什么?
- netty - Netty:如何更改套接字上的 InterestOps?
- python - 如何在没有 BioPython 库的情况下将 RNA 翻译成蛋白质