Python 基于表中的前两列合并具有不同行数的列

Python 基于表中的前两列合并具有不同行数的列,python,pandas,dataframe,Python,Pandas,Dataframe,我有两个不同的文件,包含相同数量的列,但长度不同,即 file1.txt 1650,A,1,1,1 1650,A,1,1,1 1650,A,1,1,1 1650,B,2,2,2 1650,B,2,2,2 1650,B,2,2,2 1650,B,2,2,2 1650,B,2,2,2 file2.txt 1650,A,3,3,3 1650,A,3,3,3 1650,A,3,3,3 1650,A,3,3,3 1650,A,3,3,3 1650,B,4,4,4 1650,B,4,4,4 我想使用pa

我有两个不同的文件,包含相同数量的列,但长度不同,即

file1.txt

1650,A,1,1,1
1650,A,1,1,1
1650,A,1,1,1
1650,B,2,2,2
1650,B,2,2,2
1650,B,2,2,2
1650,B,2,2,2
1650,B,2,2,2
file2.txt

1650,A,3,3,3
1650,A,3,3,3
1650,A,3,3,3
1650,A,3,3,3
1650,A,3,3,3
1650,B,4,4,4
1650,B,4,4,4
我想使用pandas将它们连接起来,结果如下:

1650,A,1,1,1,3,3,3
1650,A,1,1,1,3,3,3
1650,A,1,1,1,3,3,3
1650,A,NaN,NaN,NaN,3,3,3
1650,A,NaN,NaN,NaN,3,3,3
1650,B,2,2,2,4,4,4
1650,B,2,2,2,4,4,4
1650,B,2,2,2,NaN,NaN,NaN
1650,B,2,2,2,NaN,NaN,NaN
1650,B,2,2,2,NaN,NaN,NaN
我使用以下代码,但似乎无法正常工作:

df1 = read_data('file1')
df2 = read_data('file2')
result = pd.merge_ordered(df1,df2, how='outer', on=['a', 'b'])
如何解决此问题?

用于计数器,因此可以通过添加列
组来合并:

df1['group'] = df1.groupby(['a', 'b']).cumcount()
df2['group'] = df2.groupby(['a', 'b']).cumcount()
result = pd.merge(df1,df2, how='outer', on=['a', 'b', 'group']).drop('group', axis=1)