Я работаю над проектом, в котором мой исходный фрейм данных:
A B C label
0 1 2 2 Nan
1 2 4 5 7
2 3 6 5 Nan
3 4 8 7 Nan
4 5 10 3 8
5 6 12 4 8
Но у меня есть массив с новыми метками для определенных точек (для этого я использовал только столбцы A и B) в исходный кадр данных. Примерно так:
X_labeled = [[2, 4], [3,6]]
y_labeled = [5,9]
Моя цель - добавить новые метки в исходный фрейм данных. Я знаю, что комбинация А и В уникальна. Какой самый быстрый способ назначить новую метку правильной строке?
Это моя попытка:
y_labeled = np.array(y).astype('float64')
current_position = 0
for point in X_labeled:
row = df.loc[(df['A'] == point[0]) & (df['B'] == point[1])]
df.at[row.index, 'label'] = y_labeled[current_position]
current_position += 1
Требуемый вывод (строки с индексами 1 и 2 изменены):
A B C label
0 1 2 2 Nan
1 2 4 5 5
2 3 6 5 9
3 4 8 7 Nan
4 5 10 3 8
5 6 12 4 8
Для небольших наборов данных это может быть хорошо, в настоящее время я использую его для наборов данных с более чем 25000 меток. Есть ли способ, который быстрее?
Кроме того, в некоторых случаях я использовал все столбцы ожидают столбец «метка». Этот фрейм данных существует из 64 столбцов, поэтому мой метод не может быть использован здесь. У кого-нибудь есть идея улучшить это?
Заранее спасибо