Имея этот фрейм данных:
self.data_frame = pd.read_csv (self.path, delimiter = self.delimiter)
height weight shoe_size age name
0 175 70 40 30 John
1 175 75 39 41 Frank
2 175 69 40 33 Bill
3 176 71 40 35 George
4 178 81 41 27 John
5 169 73 38 49 Jonathan
6 170 65 39 30 Rick
Мне нужно рассчитатьрасстояние каждой строки от всех остальных, ячейка за ячейкой.
Для числовых столбцов я вычисляю разницу следующим образом:
columns_data: ndarray = self.data_frame ["weight "," height "]. values
[[70, 175]
[75, 175]
[69, 175]
[71, 176]
[81, 178]
[73, 169]
[65, 170]]
dist: ndarray = np.abs (columns_data [:, None] - columns_data)
и я получаю такой массив:
[[[ 0, 0],
[ 5, 0],
[ 1, 0],
[ 1, 1],
[11, 3],
[ 3, 6],
[ 5, 5]],
[[ 5, 0],
[ 0, 0],
[ 6, 0],
[ 4, 1],
[ 6, 3],
[ 2, 6],
[10, 5]],
[[ 1, 0],
[ 6, 0],
[ 0, 0],
[ 2, 1],
[12, 3],
[ 4, 6],
[ 4, 5]],
[[ 1, 1],
[ 4, 1],
[ 2, 1],
[ 0, 0],
[10, 2],
[ 2, 7],
[ 6, 6]],
[[11, 3],
[ 6, 3],
[12, 3],
[10, 2],
[ 0, 0],
[ 8, 9],
[16, 8]],
[[ 3, 6],
[ 2, 6],
[ 4, 6],
[ 2, 7],
[ 8, 9],
[ 0, 0],
[ 8, 1]],
[[ 5, 5],
[10, 5],
[ 4, 5],
[ 6, 6],
[16, 8],
[ 8, 1],
[ 0, 0]]
]
Итак, моя проблема связана со столбцом name , который состоит из строк.Я бы использовал расстояние Левенштейна между словами, но как я могу указать функцию для каждого типа столбца при генерации ndarray?