У меня есть кадр данных, и я хотел бы сгруппировать его по определенному столбцу (или, другими словами, по значениям из определенного столбца). Я могу сделать это следующим образом: grouped = df.groupby(['ColumnName'])
.
Я представляю результат этой операции как таблицы, в которой некоторые ячейки могут содержать наборы значений вместо одиночных значений. Чтобы получить обычную таблицу (т.е. Таблицу, в которой каждая ячейка содержит только одно единственное значение), мне нужно указать, какую функцию я хочу использовать для преобразования наборов значений в ячейках в отдельные значения.
Например, я могу заменить наборы значений по их сумме или по их минимальному или максимальному значению. Я могу сделать это следующим образом: grouped.sum()
или grouped.min()
и т.д.
Теперь я хочу использовать разные функции для разных столбцов. Я понял, что могу сделать это следующим образом: grouped.agg({'ColumnName1':sum, 'ColumnName2':min})
.
Однако по некоторым причинам я не могу использовать first
. Более подробно, grouped.first()
работает, но grouped.agg({'ColumnName1':first, 'ColumnName2':first})
не работает. В результате я получаю NameError: NameError: name 'first' is not defined
. Итак, мой вопрос: почему это происходит и как решить эту проблему.
ADDED
Здесь я нашел следующий пример:
grouped['D'].agg({'result1' : np.sum, 'result2' : np.mean})
Может быть, мне также нужно использовать np
? Но в моем случае python не распознает "np". Должен ли я импортировать его?