使用Python合并某些列相同时的行

使用Python合并某些列相同时的行,python,pandas,Python,Pandas,现在我有了一个数据帧,我想合并行。值B由列表L=['xx','yy','zz']中字符串的顺序确定 A B 0 a xx 1 a yy 2 b zz 3 b yy 对于第0行和第1行,a列的结果为'a',B列的结果为'xx'('xx'在L中位于'yy'之前) 对于第2行和第3行,A列的结果为'b',b列的结果为'yy'('yy'在L中位于'zz'之前) 预期结果: A B 0 a xx 1 b yy 您可以使用和: 您可

现在我有了一个数据帧,我想合并行。值B由列表L=['xx','yy','zz']中字符串的顺序确定

    A   B
0   a   xx
1   a   yy
2   b   zz
3   b   yy
  • 对于第0行和第1行,a列的结果为'a',B列的结果为'xx'('xx'在L中位于'yy'之前)
  • 对于第2行和第3行,A列的结果为'b',b列的结果为'yy'('yy'在L中位于'zz'之前)
  • 预期结果:

        A   B
    0   a   xx
    1   b   yy
    
    您可以使用和:

    您可以使用以下方法获得相同的结果:


    查看编辑,我发布了另一种方法:)
    df['C'] = df['B'].map(dict(zip(L,range(len(L)))))
    df.groupby('A')[['B','C']].apply(lambda x: x.iloc[x["C"].argmin()]['B'])
    #A
    #a    xx
    #b    yy
    
    df['B'] = pd.Categorical(df['B'], categories = L, ordered = True)
    df.groupby('A').min()
    #      B
    #A
    #a    xx
    #b    yy