Вы можете создать индекс слияния с помощью:
df['temp'] = 1
, а затем объединить dataframe
с собой:
merged_df = df.merge(df, on='temp', suffixes=('A', 'B')).drop('temp', axis=1)
Если вы не хотите, чтобы комбинациито же самое id_number
, сделайте наконец:
merged_df = merged_df[merged_df['id_numberA'] != merged_df['id_numberB']]
И если вы не хотите дублировать миксы id_numberA
и id_numberB
, сделайте, наконец, вместо:
merged_df = merged_df[merged_df['id_numberA'] < merged_df['id_numberB']]