Один из моих столбцов в pandas df содержит строку, представляющую набор
tables,n_estimators,min_samples_split,min_samples_leaf,max_depth
"{'school.csv'}",1024,16,4,8
"{'school.csv', 'univeristy.csv', 'work'}",1024,32,4,16
"{'univeristy.csv'}",1024,4,4,16
Я пытаюсь найти строку, соответствующую определенному значению набора, следующим образом:
hp_row = hp_df.loc[set(eval(hp_df['tables'].to_numpy())) == {school.csv'}]
Но это явно не работает.
ValueError: source code string cannot contain null bytes
Любая помощь о том, как сделать это правильно?
Здесь ожидаемое значение hp_row будет
"{'school.csv'}",1024,16,4,8
Обратите внимание, что яхочу сравнивать заданные объекты, а не строки.
Спасибо
РЕДАКТИРОВАТЬ: Мое временное решение (но ищу что-то более компактное и оптимизированное):
for i in range(df.shape[0]):
row = df.iloc[i]
s = set(eval(row['tables']))
if s == {"school.csv"}:
selected_row = row