グループ分けした後に、複雑な計算を行う

def myFunc(gr):
    return (gr["var3"] + gr["var4"])

print df.groupby(["var1","var2"]).apply(myFunc)

このようにすればよい。以下では動かないので注意

df.groupby(["var1","var2"])[["var3","var4"]].apply(myFunc)

また、複数の値を返してDataFrameを構築したい場合は、以下の構文を採用。ただ、Seriesとして返す関係上、変数型は統一していないといけない点に注意。

def myFunc(gr):
    return pandas.Series([gr["var3"] + gr["var4"]], index=["a","b"])