Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/357.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何按照熊猫的特定顺序分组?_Python_Pandas_Dataframe - Fatal编程技术网

Python 如何按照熊猫的特定顺序分组?

Python 如何按照熊猫的特定顺序分组?,python,pandas,dataframe,Python,Pandas,Dataframe,在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 =


在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