2
3番目の列に基づいて別の列の数値を合計する合計列を作成しようとしています。私は.groupby()
を使用してこれを行うことができますが、これは切り捨てられた列を作成しますが、同じ長さの列が必要です。パンダ - 他の列に基づいて合計列を作成します。
マイコード:
df = pd.DataFrame({'a':[1,2,2,3,3,3], 'b':[1,2,3,4,5,6]})
df['total'] = df.groupby(['a']).sum().reset_index()['b']
マイ結果:
a b total
0 1 1 1.0
1 2 2 5.0
2 2 3 15.0
3 3 4 NaN
4 3 5 NaN
5 3 6 NaN
マイ所望の結果:
a b total
0 1 1 1.0
1 2 2 5.0
2 2 3 5.0
3 3 4 15.0
4 3 5 15.0
5 3 6 15.0
...各'a'
列は他の同じ合計を有します。
なぜか、それは魅力のように動作します。ありがとうございました! – pshep123
それはあなたのためにうれしい!ドキュメント(私の答えでそれにリンクが追加されたばかり)は、 'transform'が元のデータフレームと同じようにインデックスされたカラムを生成すると言います。つまり、元のデータフレームと同じ長さであり、インデックスの一意の要素だけではありません。 – 3novak