Сгруппировать столбец, который представляет собой список объектов, но приводит к ошибке: непонятный тип: 'numpy.ndarray' - PullRequest
0 голосов
/ 26 февраля 2019

У меня есть такой фрейм данных.Столбец "порт" представляет собой список элементов, и я хочу groupby столбец "порт":

df1
Out[107]: 
   model                port
0      1  [a, b, c, d, e, f]
1      2  [e, r, t, u, y, y]
2      3  [d, f, g, h, j, u]
3      4  [a, b, c, d, e, f]
4      5  [e, r, t, u, w, y]
5      6  [b, c, j, k, n, v]

Я использую этот код для группировки:

df1.groupby(['port'])['model'].sum()

Это даетошибка:

TypeError: unhashable type: 'numpy.ndarray'

Что-то не так?Я искал эту ошибку, но не смог найти ничего подходящего для этой ситуации ..

1 Ответ

0 голосов
/ 26 февраля 2019

Вам нужно будет преобразовать столбец port в тип с хэшированием.Например, вы можете использовать tuple вместо np.ndarray.Примерно так:

df1.port = df1.port.map(tuple)

Если вам действительно нужен столбец port для хранения массивов в остальное время, вы можете выполнить эту операцию без изменения исходного массива:

df1.assign(port=df.port.map(tuple)).groupby("port").model.sum()
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...