1 | [1,1,0,]
2 | [0,1,1,]
3 | [0,1,0,]
3 | [0,1,1,]
3 | [1,1,0,]
Необходимо произвести сумму векторов, сгруппировав по id.
Т.e. в результате ожидаю получить такой dataframe
1 | [1,2,0,]
2 | [0,1,1,]
3 | [1,3,1,]
Пробую делать это
grouped_train_df = ext_train_df.groupby('id').agg(lambda x: np.sum(x, axis=0))
но результат кривой - списки объединяются, т.е. получется
1 | [0,1,0,1,1,0,]
и так далее..
Есть идеи?
сериализовать строки
Так, а каким йобом ты нонхешабл тайп в колонку запихнул
Не уверен, что это самый производительный вариант, но напиши свою аггрегационную функцию
Держи from functools import reduce import pandas as pd df = pd.DataFrame({'id': [1, 1, 3, 3], 'vector': [[0, 1, 0], [1, 1, 0], [0, 1, 0], [0, 1, 1]]}) def vector_sum(series): return reduce(lambda x, y: [x[0] + y[0], x[1] + y[1], x[2] + y[2]], series) df.groupby('id').agg(vector_sum)
https://repl.it/repls/ChiefMundaneProlog
Обсуждают сегодня