要比较两列中的字符串并在python中的同一行中获得相等的值吗

要比较两列中的字符串并在python中的同一行中获得相等的值吗,python,string,pandas,dataframe,Python,String,Pandas,Dataframe,我想比较两个列,其中两列中的值都没有排序,所以,比较它们,以便两列中相似的值将位于同一行中 输入数据: A B 1a nan 2b 3c 3c 2b 4d 1a 预期产量: A B 1a 1a 2b 2b 3c 3c 4d nan 如果只有两列要对齐,那么这就是一个合并问题-在a和B上执行左外连接以对齐相等的值,在没有匹配项的情况下填充NaN: df[['A']].merge(df[['B']], how='left', left_

我想比较两个列,其中两列中的值都没有排序,所以,比较它们,以便两列中相似的值将位于同一行中

输入数据:

A    B
1a    nan
2b    3c
3c    2b
4d    1a
预期产量:

A    B
1a    1a
2b    2b
3c    3c
4d    nan

如果只有两列要对齐,那么这就是一个
合并
问题-在a和B上执行左外连接以对齐相等的值,在没有匹配项的情况下填充NaN:

df[['A']].merge(df[['B']], how='left', left_on='A', right_on='B')

   A    B
0  1    1
1  2    2
2  3    3
3  4  NaN
您还可以使用支持合并系列的
pd.merge

pd.merge(df['A'], df['B'], left_on='A', right_on='B', how='left')

   A    B
0  1    1
1  2    2
2  3    3
3  4  NaN

您只有两列吗?很抱歉没有正确定义问题…但是排序无法解决问题,因为它应该比较两列中的字符串…我已编辑了问题now@GaneshKharad这个答案仍然有效,你能检查一下吗?它使用合并,而不是排序。