У меня есть пример данных в формате ARFF:
@relation 'data1'
@attribute a numeric
@attribute b numeric
@attribute c numeric
@attribute Class {Class1,Class0}
@data
2,1,3,Class1
3,3,-1,Class0
4,3,1,Class1
Это выглядит так:
|---------------------|------------------|------------------|------------------|
| X1 | X2 | X3 | Class |
|---------------------|------------------|------------------|------------------|
| 2 | 1 | 3 | Class1 |
|---------------------|------------------|------------------|------------------|
| 3 | 3 | -1 | Class0 |
|---------------------|------------------|------------------|------------------|
| 4 | 3 | 1 | Class1 |
|---------------------|------------------|------------------|------------------|
Теперь я хотел бы преобразовать этот набор данных в другой, в котором каждый объект будет содержит связи атрибута X с другими атрибутами в соответствии с: Xi-Xj.
Итак, я получу еще один набор из этого набора данных, который будет содержать 9 объектов:
|---------------------|------------------|------------------|
| A1 | A2 | Class |
|---------------------|------------------|------------------|
| X1-X2 | X1-X3 | Class1 |
|---------------------|------------------|------------------|
| X2-X1 | X2-X3 | Class1 |
|---------------------|------------------|------------------|
| X3-X1 | X3-X2 | Class1 |
|---------------------|------------------|------------------|
| X1-X2 | X1-X3 | Class0 |
|---------------------|------------------|------------------|
| X2-X1 | X2-X3 | Class0 |
|---------------------|------------------|------------------|
| X3-X1 | X3-X2 | Class0 |
|---------------------|------------------|------------------|
| X1-X2 | X1-X3 | Class1 |
|---------------------|------------------|------------------|
| X2-X1 | X2-X3 | Class1 |
|---------------------|------------------|------------------|
| X3-X1 | X3-X2 | Class1 |
|---------------------|------------------|------------------|
С указанными c значениями из первой таблицы:
|---------------------|------------------|------------------|
| A1 | A2 | Class |
|---------------------|------------------|------------------|
| 1 | -1 | Class1 |
|---------------------|------------------|------------------|
| -1 | -2 | Class1 |
|---------------------|------------------|------------------|
| 1 | 2 | Class1 |
|---------------------|------------------|------------------|
| 0 | 4 | Class0 |
|---------------------|------------------|------------------|
| 0 | 4 | Class0 |
|---------------------|------------------|------------------|
| -4 | -4 | Class0 |
|---------------------|------------------|------------------|
| 1 | 3 | Class1 |
|---------------------|------------------|------------------|
| -1 | 2 | Class1 |
|---------------------|------------------|------------------|
| -3 | -2 | Class1 |
|---------------------|------------------|------------------|
Для этого я решил использовать Python. В начале я загружаю данные из файла ARFF:
data = arff.loadarff('data.arff')
df = pd.DataFrame(data[0])
df.head()
print (df)
И здесь у меня проблема. Как я могу оптимально выполнить вышеуказанные операции?