У меня есть матрица функций с горячим кодированием, где функции - это подстроки обучающих данных.
У меня есть только последний фрейм данных, содержащий rows = samples, columns = substrings (one-hot-encoded)
. Теперь я хочу одним нажатием закодировать новый набор данных. Данные состоят из rows = samples, columns = String
, и мне нужно проверить, содержит ли строка каждого образца какие-либо подстроки (функции), и выполнить их горячее кодирование.
Цикл по всем строкам и подстрокам не будет достаточно быстро, так как у меня довольно много данных. Каким будет быстрый способ решить эту проблему?
EDIT: Пример: у меня есть несколько строк в списке и одна матрица с горячим кодированием с подстроками из них:
strings = ['foobarista', 'foobar']
substrings = {'foo' : [1,1] ,
'bar' : [1,1],
'ist' : [0,1],
'sta' : [0,1]}
df_one_hot = pd.DataFrame(substrings)
Скажем, это мои данные для обучения, поэтому у меня есть функции foo, bar, ist, sta
.
Теперь у меня есть новые данные:
new_strings = ['barista', 'barfoo', 'house']
И я хочу проверить эти новые строки, если они содержат какие-либо из подстроки из фрейма данных выше.
new_substrings = {'foo' : [0,1,0] ,
'bar' : [1,1,0],
'ist' : [1,0,0],
'sta' : [1,0,0]}
new_df = pd.DataFrame(new_substrings)