python dataframe列中每个条目的最新x行
需要选择每个客户最新购买的x 是否有一种性能良好的方法为每个客户端选择最新的x行?假设我们有一个如下所示的数据帧:python dataframe列中每个条目的最新x行,python,pandas,dataframe,Python,Pandas,Dataframe,需要选择每个客户最新购买的x 是否有一种性能良好的方法为每个客户端选择最新的x行?假设我们有一个如下所示的数据帧: df1 = Client Product ID A 1 330 B 1 15 A 5 329 A 3 328 A 2 327 B 6 14 A 7 326 A 7 325 C 9 20
df1 =
Client Product ID
A 1 330
B 1 15
A 5 329
A 3 328
A 2 327
B 6 14
A 7 326
A 7 325
C 9 205
C 3 204
C 2 203
C 1 202
C 1 201
B 2 13
B 2 12
B 2 11
df2=
Client Product ID
A 1 330
A 5 329
B 1 15
B 6 14
C 9 205
C 3 204
WARE ID只是一个增量ID(意味着该ID为您提供了客户购买的编号),我们希望为每个客户选择最后两次购买,以便输出如下所示:
df1 =
Client Product ID
A 1 330
B 1 15
A 5 329
A 3 328
A 2 327
B 6 14
A 7 326
A 7 325
C 9 205
C 3 204
C 2 203
C 1 202
C 1 201
B 2 13
B 2 12
B 2 11
df2=
Client Product ID
A 1 330
A 5 329
B 1 15
B 6 14
C 9 205
C 3 204
是否可以在不循环数据帧的情况下执行此操作?按
ID
降序对数据帧进行排序,按Client
分组,并“选择”每组的前2行
df1.sort_values('ID', ascending=False).groupby('Client').head(2)
Client Product ID
A 1 330
A 5 329
C 9 205
C 3 204
B 1 15
B 6 14
非常好用,非常感谢。也许你可以帮我回答另一个问题:现在我有了最新的x值,可能有一个客户的条目少于x,在这种情况下,是否可以用产品的指定值填充数据?明确地说客户机D的最大ID是1,而我仍然在寻找最新的2行。是否可以添加一行,其中显示Client='Client C'和Product='500'(ID不重要)