Python 查找反向/镜像对并指定对号

Python 查找反向/镜像对并指定对号,python,pandas,Python,Pandas,我试图找到相反的一对,并为这一对分配一个对号,但我被卡住了,无法从下面向前移动 df1: 我正在努力得到这个结果 col1 col2 pair 1 no. of records totalcount A B 1 2 7 B A 1 5 7 C D 2 4 10 D C 2

我试图找到相反的一对,并为这一对分配一个对号,但我被卡住了,无法从下面向前移动

df1:

我正在努力得到这个结果

col1    col2  pair 1  no. of records    totalcount
A       B     1       2                 7
B       A     1       5                 7
C       D     2       4                 10
D       C     2       6                 10
E       F     3       4                 4
G       H     4       6                 6
我尝试了这个方法,但它只返回true/false。 制作一个重复的数据帧df2并使用isin函数,但在将它们分组时被阻塞了很长时间

df1['row_matched'] = np.where((df1.col1+df1.col2).isin(df2.col2+ df2.col1), df2['row'], "")

非常感谢您的帮助

使用
col1、col2
组对的
rank
,您可以使用
set

In [37]: df['pair'] = (df.apply(lambda x: '-'.join(set(x[['col1', 'col2']])), 1)
                         .rank(method='dense').astype(int))

In [38]: df['totalcount'] = df.groupby('pair')['no.ofrecords'].transform('sum')

In [39]: df
Out[39]: 
  col1 col2  no.ofrecords  pair  totalcount
0    A    B             2     1           7
1    B    A             5     1           7
2    C    D             4     2          10
3    D    C             6     2          10
4    E    F             4     3           4
5    G    H             6     4           6

totalcount
怎么来?是成对+没有录音吗?
In [37]: df['pair'] = (df.apply(lambda x: '-'.join(set(x[['col1', 'col2']])), 1)
                         .rank(method='dense').astype(int))

In [38]: df['totalcount'] = df.groupby('pair')['no.ofrecords'].transform('sum')

In [39]: df
Out[39]: 
  col1 col2  no.ofrecords  pair  totalcount
0    A    B             2     1           7
1    B    A             5     1           7
2    C    D             4     2          10
3    D    C             6     2          10
4    E    F             4     3           4
5    G    H             6     4           6