Если вы уже создали два других фрейма данных, вы можете просто следовать коду concat. В противном случае вы можете создавать образцы одного и того же кадра данных на основе np.random.permutation
, как показано ниже:
>>df1
A1 A2 A3 A4
0 1001 1002 1003 1004
1 5001 5002 5003 5004
2 7001 7002 7003 7004
df2 = df1.iloc[np.random.permutation(len(df1))]
df2.columns=['B{}'.format(i) for i in range(1, len(df1.columns) + 1)]
>>df2
B1 B2 B3 B4
1 5001 5002 5003 5004
0 1001 1002 1003 1004
2 7001 7002 7003 7004
df3 = df2.iloc[np.random.permutation(len(df2))]
df3.columns=['C{}'.format(i) for i in range(1, len(df1.columns) + 1)]
>>df3
C1 C2 C3 C4
2 7001 7002 7003 7004
0 1001 1002 1003 1004
1 5001 5002 5003 5004
Когда у вас есть готовые кадры данных, вы можете объединить их в axis=1
, например:
pd.concat([df1,df2,df3],axis=1)
A1 A2 A3 A4 B1 B2 B3 B4 C1 C2 C3 C4
0 1001 1002 1003 1004 5001 5002 5003 5004 7001 7002 7003 7004
1 5001 5002 5003 5004 7001 7002 7003 7004 1001 1002 1003 1004
2 7001 7002 7003 7004 1001 1002 1003 1004 5001 5002 5003 5004
Примечание Этот процесс выполняется на перестановках, поэтому вы можете ожидать равное количество комбинаций, которые не будут одинаковыми при каждом запуске кода.