Как мне использовать Python Table.group собирать аргумент? - PullRequest
0 голосов
/ 26 сентября 2019

Вопрос 1 Установите prof_names в таблицу с двумя столбцами.Первый столбец должен называться «Org.Major.Budget.Unit» и иметь название каждого отдела один раз, а второй столбец должен называться «имена» и содержать массив имен всех преподавателей этого отдела.Подсказка: подумайте, как работает группа: она собирает значения в массив, а затем применяет функцию к этому массиву.Ниже мы определили две функции для вас, и вам нужно будет использовать одну из них при вызове группы.

def identity(array):
    return array 

def first(array):
    return array.item(0)
prof_names = Table().with_columns(
    "Org.Major.Budget.Unit", profs.column("Org.Major.Budget.Unit"),
    "names", profs.column("Full.Name"))

prof_names = prof_names.sort("Org.Major.Budget.Unit")

prof_names = prof_names.group("Org.Major.Budget.Unit",first(prof_names.column("names")))

Попытка сгруппировать профессоров в массив, но, похоже, не работает.

---------------------------------------------------------------------------
TypeError                                 Traceback (most recent call last)
<ipython-input-58-2997498ca0f8> in <module>
      7 ##print(identity(prof_names.column("names")))
      8 
----> 9 prof_names = prof_names.group("Org.Major.Budget.Unit",first(prof_names.column("names")))
     10 
     11 

//anaconda3/lib/python3.7/site-packages/datascience/tables.py in group(self, column_or_label, collect)
    938 
    939         self = self.copy(shallow=True)
--> 940         collect = _zero_on_type_error(collect)
    941 
    942         # Remove column used for grouping

//anaconda3/lib/python3.7/site-packages/datascience/tables.py in _zero_on_type_error(column_fn)
   2937         return column_fn
   2938     if not callable(column_fn):
-> 2939         raise TypeError('column functions must be callable')
   2940     @functools.wraps(column_fn)
   2941     def wrapped(column):

TypeError: column functions must be callable
...