Присоединитесь к аналогичному идентификатору заказа и объедините товары Pandas / DataFrame - PullRequest
1 голос
/ 28 февраля 2020

В последнее время учусь Pandas. Моя проблема заключается в том, что у меня есть DataFrame, состоящий из «OrderID» и «Закупочной позиции», я хочу, чтобы он был в GroupBy OrderID, а также объединял в модуле «Покупаемый товар» один столбец с OrderID.

dupRow_1['Grouped'] = dupRow_1.groupby('Order ID')['Product'].transform(lambda x: ','.join(x))

Использовал код выше но я получаю ошибку несоответствия длины: «Несоответствие длины: ожидаемая ось имеет 15004 элемента, новые значения имеют 15549 элементов»

Есть идеи, как мне это сделать? Спасибо.

Фото

1 Ответ

1 голос
/ 28 февраля 2020

Я думаю, что в столбце Order ID отсутствуют значения, поэтому строки исключаются groupby. Таким образом, вы можете заменить их на некоторые значения, которых нет в данных, например, missing:

dupRow_1 = pd.DataFrame({
        'Product':list('abcdef'),
         'Order ID':[np.nan,5,4,5,5,np.nan],

})
dupRow_1['Grouped'] = (dupRow_1['Product'].groupby(dupRow_1['Order ID'].fillna('missing'))
                                          .transform(lambda x: ','.join(x)))

print (dupRow_1)
  Product  Order ID Grouped
0       a       NaN     a,f
1       b       5.0   b,d,e
2       c       4.0       c
3       d       5.0   b,d,e
4       e       5.0   b,d,e
5       f       NaN     a,f
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...