2017-01-27 7 views
2

私は含むトランザクションテーブルがあります。2次元の時系列GROUPBY

timestamp, user_id, val 

を、私は、各列に異なる、USER_IDによってGROUPBYと

ようヴァルに複雑な操作を適用する必要がありますが、 ....

どの方法が最も効率的でしょうか?

for x in user_id_list : 

又は2)パンダのGROUPBYを使用するためのループを有する

1)分割を、これは、各列の異なる機能を適用する方法は明らかではない....

おかげ

答えて

1

aggを使用すると、複数の機能をすべての列または特定の列ごとに一度に適用できます。あなたは後でやりたいこのパスでは、以下のような列名と関数名の辞書があります。

df.groupby('by_user_id').agg({'val':'min', 'timestamp':'max'}) 
+0

「min」ではなくカスタム関数を使用できますか? – Tensor

+0

もちろん、その名前を引用符なしで渡すだけです – Boud

+0

Thx、 'newcol' = my_fun( 'col1'、 'col2')は、他の列の処理に基づいて新しい列を作成するとどうなりますか? – Tensor