Группировка строк для фрейма данных в pandas

В настоящее время у меня есть фрейм данных UniqueItems, который выглядит так (я сократил его, потому что это длинный список):

# of Transactions
Item    
Adjustment  1
Afternoon with the baker    44
Alfajores   369
Argentina Night 7
Art Tray    38

Я отсортировал значения, чтобы получить новый фрейм данных под названием UniqueItem_inorder. который показывает 5 лучших транзакций по этому коду:

UniqueItem_inorder = UniqueItem.sort_values(by=['# of Transactions'], ascending=False).head(5)

Если я хочу сгруппировать остальные элементы из UniqueItem в другую строку с именем «other», которых нет в UniqueItem_inorder, как мне это сделать?

Не могли бы вы отформатировать свой вопрос, чтобы правильно отобразить форму DataFrame?

Alex 31.10.2018 12:19
If I want to group the rest of the items into another row called "other" from UniqueItem that are not in UniqueItem_inorder, how would I go about it? Это утверждение настолько непонятно. Пожалуйста, объясните, что вы хотите от ожидаемого результата.
Mayank Porwal 31.10.2018 12:31
0
2
48
1

Ответы 1

Некоторые варианты следующего могут работать:

import string
import numpy as np
import pandas as pd

np.random.seed(2)    
df = pd.DataFrame({'Item': list(string.ascii_lowercase),
                   'Number': np.random.randint(1, 300, size=26)})
df.sort_values(by='Number', ascending=False, inplace=True)
leftover = df['Number'].iloc[5:].sum()
df = df.append({'Item': 'other', 'Number': leftover}, ignore_index=True)
print(df.head())
print(df.tail())

что приводит к:

  Item  Number
0    p     294
1    l     288
2    f     264
3    t     261
4    y     256
     Item  Number
22      v      39
23      w      34
24      d      23
25      b      16
26  other    2155

Если вы хотите удалить элементы с 5 по 25 из фрейма данных, просто проигнорируйте их при добавлении строки «другая»:

<as before>
df = df[:5].append({'Item': 'other', 'Number': leftover}, ignore_index=True)
print(df)

Результат:

    Item  Number
0      p     294
1      l     288
2      f     264
3      t     261
4      y     256
5  other    2155

Другие вопросы по теме