2

以下のコードは機能しているようです。ソートされたグループで関数を呼び出すtailと、グループの最後の n 行を取得できます。これは、グループの tail 関数の文書化された動作ですか。パンダのドキュメントには言及されておらず、次のバージョンでこの動作が変更される可能性があるのではないかと心配しています。また、次のことを行う他の方法があります。大規模なデータセットの場合、関数の使用は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 に答える