У меня есть Pandas dataframe (df) сравнений, которые симметричны.a против b = 2, поэтому b против a также равно 2.Сам сравнения не указаны, но я бы хотел перечислить их как '0'.
import pandas as pd
df = pd.DataFrame(columns=['Col1','Col2','Col3','Col4','Col5'])
df['Col1'] = ['a','a','a','b','b','c']
df['Col2'] = ['b','c','d','c','d','d']
df['Col3'] = [2,3,4,5,6,7]
df['Col4'] = ['ignore_me']*6
df['Col5'] = ['ignore_me']*6
Я могу избавиться от столбцов, которые мне не интересны, потому что они названы.
small_df = df.drop(['Col4', 'Col5'], axis=1)
>>> small_df
Col1 Col2 Col3
0 a b 2
1 a c 3
2 a d 4
3 b c 5
4 b d 6
5 c d 7
Есть ли функция, которая преобразует эти small_df
пары в сводную таблицу, как одну из этих 3?нижний треугольник, верхний треугольник или оба не имеют значения
a b c d a b c d a b c d
a 0 a 0 2 3 4 a 0 2 3 4
b 2 0 b 0 5 6 b 2 0 5 6
c 3 5 0 c 0 7 c 3 5 0 7
d 4 6 7 0 d 0 d 4 6 7 0