複数の「値」列を持つピボットテーブルを生成しようとしていました。私はaggfuncを使用して値を集計する方法を知っていますが、もし両方の列を合計したいのではなく、一方の列の合計を他の列の平均値としたい場合はどうしますか?それで、パンダを使ってそうすることは可能ですか?平均ためパンダのピボットテーブルの各値列に対してaggfuncを定義
pd.pivot_table(df, values=['D','E'], rows=['B'], aggfunc=np.sum)
そして、この:
df = pd.DataFrame({
'A' : ['one', 'one', 'two', 'three'] * 6,
'B' : ['A', 'B', 'C'] * 8,
'C' : ['foo', 'foo', 'foo', 'bar', 'bar', 'bar'] * 4,
'D' : np.random.randn(24),
'E' : np.random.randn(24)
})
さて、これは合計で、ピボットテーブルを取得します
pd.pivot_table(df, values=['D','E'], rows=['B'], aggfunc=np.mean)
はどのようD
のために合計し、E
のために意味得ることができますか?
私の質問は十分明確です。
ありがとうございます、両方の方法が有効です。しかし私が得ることを望んでいたものは、いくつかの一歩一歩でした。あなたは、個々の列ごとに関数を定義できると言っていました。他の誰かがそのようなことを知っていれば私は待っています。私はあなたの答えをしばらくのうちに受け入れます。 –
@VIKASHJAISWAL第3の方法を参照してください、私はこれがあなたが必要なものだと思います –
優れています。正確に私が探していたものは、実際には複数の列でグループ化するために機能します。df.groupby(['B'、 'C'])集計({'D':np.sum、 'E':np。平均})。お疲れ様でした。 –