我目前有一个名为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_inorder中不在的UniqueItem中称为“其他”的另一行中,我将如何处理?
答案 0 :(得分:0)
以下内容的某些变体可能会起作用:
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