[英]Grouping rows for a dataframe in Pandas
我目前有一个名为UniqueItems
的数据UniqueItems
,它看起来像这样(我将其缩短是因为它的清单很长):
# of Transactions
Item
Adjustment 1
Afternoon with the baker 44
Alfajores 369
Argentina Night 7
Art Tray 38
我对值进行了排序,以得到一个名为UniqueItem_inorder
的新数据UniqueItem_inorder
,该数据UniqueItem_inorder
通过以下代码显示了前5个事务:
UniqueItem_inorder = UniqueItem.sort_values(by=['# of Transactions'], ascending=False).head(5)
如果我想将其余的项目分组到UniqueItem_inorder中不属于UniqueItem的另一行中,称为“其他”,我该如何处理?
以下内容可能会有一些变化:
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
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.