Всегда лучше предоставить код, чтобы мы могли быстро создать фрейм, а не просто таблицу. В любом случае вы можете создать общий key
и создать базу данных, например, перекрестное соединение, чтобы получить конечный результат. Вы можете сделать это в одну строку, но я делаю шаг за шагом.
import pandas as pd
df = pd.DataFrame({'model': ['model1', 'model2'],
'steve': ['a', 'b'],
'jhon': ['c', 'd']
})
# create a common key
df['key'] = 'xyz'
# create two seperate dataframe for self join
# but it is possible to use the direct operation (right side) in
# inside of merge funciton
df_steve = df [['model', 'steve', 'key']]
df_jhon = df [['model', 'jhon', 'key']]
# self join
pd.merge(df_steve, df_jhon, on='key', suffixes=('_steve', '_jhon')).drop('key', axis=1)
Выход:
model_steve steve model_jhon jhon
0 model1 a model1 c
1 model1 a model2 d
2 model2 b model1 c
3 model2 b model2 d
Код одного вкладыша:
cross_df = pd.merge(df[['model', 'steve', 'key']],
df[['model', 'jhon', 'key']],
on='key',
suffixes=('_steve', '_jhon')
).drop('key', axis=1)
просто измените имя столбца в соответствии с вашими потребностями.