@ciel_tktk

Are you sure you want to delete the question?

Leaving a resolved question undeleted may help others!

Pandasでの合計値の列の算出

Q&A

Closed

解決したいこと

Pandasでの合計値の列と比率の算出をしたいと考えているのですが、コードの記載方法がわからずに困っています。

こんなことがしたいです。

import pandas as pd

df = pd.DataFrame(
    {
        "date": ["2022-01", "2022-01", "2022-02", "2022-02","2022-02","2022-02","2022-03", "2022-03", "2022-03", "2022-03", "2022-03"],
        "Name":["AA", "AA", "AA", "BA", "CA", "CA", "AA","BA", "BA", "CA","CA",],
        "Name2": ["X", "Y", "X", "Y", "X", "Y", "X", "X", "Y","X", "Y",],
        "Number": [18, 15, 39, 49, 30, 31, 267, 44, 668,12,15]
    }
)

df['Total']= df.groupby(['date','Name'], as_index=False).agg('sum')['Number']

同じ月でXとYの数の割合を計算したいです。

image.png

自分で試したこと

単純に新しくdateとNameでgroupbyして合計の列を作成しようとしたのですが、行の数が合わないので上手くいかずに困ってます。

image.png

こんな感じになってくれるのが理想です。
image.png

0 likes

1Answer

groupby.transform()を使いましょう。

df["Total"] = df.groupby(["date", "Name"])["Number"].transform("sum")
1Like

Comments

  1. @ciel_tktk

    Questioner

    ありがとうございます!!まだ初心者で全然わからなかったので助かりました。

Your answer might help someone💌