У меня есть два pd.DataFrames классы и учителя .
классы DataFrame содержат помимо прочего переменные классы ['no-pupils'] и классы ['учителя'] .Первый - это целое число (количество учащихся), а второй - список строк, так как в каждом классе может быть несколько учителей.
учителя DataFrame имеет (помимо других) две переменные.Первый - это учителя ['имя'] , что соответствует классам ['учителя'] пунктов списка, второй - учителя ['без учеников'], которое я хочу вычислить.
Я хочу вычислить это поле, сложив классы ['no-pupils'] всех строк, где классы ['учителя '] содержит учителей [' name '] , чтобы выяснить, сколько учеников взаимодействует с учителем.
Прямо сейчас я делаю это, повторяя цикл for для DataFrame учителей и внутри этого цикла, повторяя классы DataFrame со следующим кодом:
for index-teacher, teacher in teachers.iterrows():
for index-class, class in classes.iterrows():
if teacher['name'] in class['teachers']:
teachers['no-pupils'][index-teacher] = teachers['no-pupils'][index1] + classes['no-pupils'][index-class]
Поскольку у меня примерно2000 строк на DataFrame, это займет 5-10 минут.Поэтому мне интересно, не существует ли более вычислительно эффективного способа использования потрясающих возможностей векторизации от панд.
PS: Если вы удивляетесь странному сценарию использования, я подумал об этом, так как не могу раскрытьреальный случай использования.