データフレーム内の条件で指定した2つのセルの合計値を出したい

前提

データフレーム内の条件で指定した2つのセルの合計値を出したいです。

以下表のような計算を、pandasで行いたいです。

列番号 A B C 計算結果
1 0 0 0 0
2 1 2 3 1
3 2 3 4 5
4 5 6 7 9

列1の計算結果はA1
列2の計算結果はA2+C1
列3の計算結果はA3+C2
列4の計算結果はA4+C3
というようなイメージです。

なぜこれを実現しないといけないのか

なぜこのようなことを実現したいのかというと、
現在売上高を集計し、Matplotlibで描画をすることを想定した、
以下の条件のあるデータフレームを作成しているためです。

列1 date 当日売上 仮売上高合計 確定売上高合計
1 2022/7/1 100 100 100
2 2022/7/2 100 200 200
3 2022/7/3 200 400 400
4 2022/7/4 200 600 650
5 2022/7/5 0 600 650
6 2022/7/6 300 900 950
7 2022/7/7 100 1000 1250
8 2022/7/8 0 1000 1250

列「当日売上」というのは、各担当から申告があった数値を反映しており、
列「仮売上高合計」はその当日売上をcumsumで集計しています。

ランダムな日にちで、確定した売上高合計の情報が入手できるため、
それまでの集計を無視して、「確定売上高合計」に正しい数値が入ります。

その後、毎日の売上を、「確定売上高合計」の前日に足した情報を準備する必要があります。

色々ツッコみたい気持ちもありますが、これを実現するために、
エクセルのようにセル指定して計算する、C1+A2みたいなことをデータフレーム内で実現したいのです。。。

検討していること

df.shift(period=1)で式を組んで列を追加して、加算計算を組めばいいか?と考えているのですが、
他にスマートな書き方があればと思い、ご相談させていただきました。

以下にテーブルデータを添付しますので、ご利用ください。

python

s = """ 列1,date当日売上,仮売上高合計,確定売上高合計 1,2022/7/1,100,100,100 2,2022/7/2,100,200,200 3,2022/7/3,200,400,400 4,2022/7/4,200,600,650 5,2022/7/5,0,600,650 6,2022/7/6,300,900,950 7,2022/7/7,100,1000,1250 8,2022/7/8,0,1000,1250 """df = pd.read_csv(StringIO(s), dtype={'trade_date':str})

お忙しいところ恐れ入りますが、ご知見のある方、ご協力いただければ幸いです。
よろしくお願い致します。

コメントを投稿

0 コメント