2

下面提到的代码似乎有效。在排序组上调用tail函数能够给我一个组的最后 n 行。这是一个组的尾部函数的记录行为吗?熊猫文档没有提到它,我担心在下一个版本中这种行为可能会改变。还有其他方法可以执行以下操作。对于大型数据集,使用该apply函数似乎非常慢。0.7.3 中使用的 pandas 版本

df1=pds.DataFrame({'A' : ['CU','CU','CU','CU','CU','AU','AU','AU','AU','AU'],'B':[1,2,3,4,5,1,2,3,4,5]}).sort(['A']).reset_index().drop(['index'],axis=1)
df2=df1.groupby(['A'])
df3=df2.tail(2).groupby(['A'])
df3.mean()
4

1 回答 1

2

该文档确实提到了 head/tail

对于您的代码,请使用pivot_table

a = pds.DataFrame({'A' : ['CU','CU','CU','CU','CU','AU','AU','AU','AU','AU'],
                   'B':[1,2,3,4,5,1,2,3,4,5]}).sort(['A'])

a.pivot_table(rows='A', values='B', aggfunc=lambda x: x.tail(2).mean())

返回

AU    4.5
CU    4.5
于 2012-06-21T13:58:07.910 回答