使用Python合并某些列相同时的行
现在我有了一个数据帧,我想合并行。值B由列表L=['xx','yy','zz']中字符串的顺序确定使用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 您可以使用和: 您可
A B
0 a xx
1 a yy
2 b zz
3 b yy
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