pandasデータフレームの他の列の値に基づいて「Balance」列を更新する方法

user10083444

次のデータフレームがあります。

         Date    Status   Amount  Balance
0  06-10-2000   Deposit    40.00     40.0
1  09-12-2002  Withdraw  1000.00      NaN
2  27-06-2001   Deposit    47.00      NaN
3  07-12-2021  Withdraw   100.00      NaN
4  06-10-2022   Deposit   120.00      NaN
5  06-10-2000   Deposit    40.00      NaN
6  09-12-2024  Withdraw    50.00      NaN

目標は、預金か引き出しかに基づいて残高を更新することです。初期残高は=開始金額です。したがって、40.0としてハードコーディングしました。

以下は私のコードですが、どういうわけか期待した結果が得られていません。

期待される結果:

         Date    Status   Amount  Balance
0  06-10-2000   Deposit    40.00     40.0
1  09-12-2002  Withdraw  1000.00    -960.0
2  27-06-2001   Deposit    47.00    -913.0
3  07-12-2021  Withdraw   100.00    -1013.0
4  06-10-2022   Deposit   120.00    -893.0
5  06-10-2000   Deposit    40.00    -853.0
6  09-12-2024  Withdraw    50.00    -903.0

コードで何が間違っているのですか、コードは以下のとおりです

import pandas as pd
with open(r"transactions.txt", "r") as Account:
    details = Account.read().split(",")
print("details of txt",details)

df=pd.DataFrame(details)

fg=df[0].str.extract('(?P<Date>.*) (?P<Status>.*) (?P<Amount>.*)')
print(fg)

fg['Amount'] = fg.Amount.str.replace('$','') #removing $ sign
#setting first row value of balance as 40, as equal to amount in 1st row
fg.loc[fg.index[0], 'Balance'] = 40.00 
print(fg)

for index, row in fg.iterrows():
    if index==0:
        continue
    if fg.loc[index,'Status']=='Deposit':
        print("reached here")
        fg.at[float(index),'Balance']=sum(fg.loc[float(index),'Amount'],fg.loc[float(index-1),'Balance'])
    elif fg.loc[index,'Status']=='withdraw':  
        fg.at[float(index),'Balance']=fg.loc[float(index),'Amount']-fg.loc[float(index-1),'Balance']

    print(fg)
マイコドリ

IIUC、np.whereおよびcumsum

df['Balance'] = np.where(df['Status'].eq('Deposit'),df['Amount'], df['Amount'] * -1)

df['Balance'] = df['Balance'].cumsum()

         Date    Status  Amount  Balance
0  06-10-2000   Deposit    40.0     40.0
1  09-12-2002  Withdraw  1000.0   -960.0
2  27-06-2001   Deposit    47.0   -913.0
3  07-12-2021  Withdraw   100.0  -1013.0
4  06-10-2022   Deposit   120.0   -893.0
5  06-10-2000   Deposit    40.0   -853.0
6  09-12-2024  Withdraw    50.0   -903.0

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

分類Dev

Pandasデータフレームの他の列の値に基づいて列値をカウントする

分類Dev

他の列スパークの値に基づいてデータフレームに列を追加する方法

分類Dev

データ フレームの他の列に基づいて新しい pandas 列を作成する方法は?

分類Dev

他の列の値に基づいて、pandasデータフレームの列の値を設定します

分類Dev

以前のレコードの値に基づいてSparkデータフレームの列を更新する方法

分類Dev

他のデータフレーム列の値に基づいてデータフレーム列の値を更新する

分類Dev

他の行の値に基づいてパンダのデータフレーム列を追加する方法

分類Dev

データフレーム内の他の列の値に基づいて列を埋める方法は?

分類Dev

pandasデータフレームの条件に基づいて列の値をシフトする方法

分類Dev

他の列の値に基づいてデータフレームに新しい列を追加する

分類Dev

他の列の値に基づいてデータフレームの値の合計を計算する

分類Dev

他の列に基づいてデータフレームの列値の一部を変更する

分類Dev

同じデータフレームの他の列に基づいてスコア列を更新する

分類Dev

pandasデータフレームの値に基づいて文字列の値を更新します

分類Dev

既存の列の隣接する値に基づいてPandasデータフレームに列を追加する

分類Dev

複数の列に基づいて、あるデータフレームの値を他のデータフレームから減算する方法は?

分類Dev

他の列の条件に基づいてパンダのデータフレーム列を操作する方法

分類Dev

他の列に基づいてデータフレーム列の値を変更する

分類Dev

既存の列の値に基づいてpandasデータフレームに新しい列を追加する

分類Dev

他の2つのデータフレームの値に基づいて新しい列を作成する

分類Dev

pandasデータフレームの他の3つの列に基づいて1つの列の値を変更する

分類Dev

別のデータフレームの列値に基づいてブール列を作成する方法

分類Dev

データフレーム内の他の列に基づいてパンダのデータフレーム列の値を変更する

分類Dev

他の列の値に基づいてパンダデータフレーム行を作成する

分類Dev

他のデータフレームに基づいて特定の列値を追加する

分類Dev

pandasデータフレーム内の他の列の条件と値に基づいて新しい列を作成する

分類Dev

時系列Pandasデータフレームの他の2つのブール列に基づいて列の状態を判別する方法は?

分類Dev

他のパンダデータフレームからの一致する列に基づいてパンダ列を更新する最速の方法

分類Dev

他の列のデータフレームrの値に基づいて列を追加します

Related 関連記事

  1. 1

    Pandasデータフレームの他の列の値に基づいて列値をカウントする

  2. 2

    他の列スパークの値に基づいてデータフレームに列を追加する方法

  3. 3

    データ フレームの他の列に基づいて新しい pandas 列を作成する方法は?

  4. 4

    他の列の値に基づいて、pandasデータフレームの列の値を設定します

  5. 5

    以前のレコードの値に基づいてSparkデータフレームの列を更新する方法

  6. 6

    他のデータフレーム列の値に基づいてデータフレーム列の値を更新する

  7. 7

    他の行の値に基づいてパンダのデータフレーム列を追加する方法

  8. 8

    データフレーム内の他の列の値に基づいて列を埋める方法は?

  9. 9

    pandasデータフレームの条件に基づいて列の値をシフトする方法

  10. 10

    他の列の値に基づいてデータフレームに新しい列を追加する

  11. 11

    他の列の値に基づいてデータフレームの値の合計を計算する

  12. 12

    他の列に基づいてデータフレームの列値の一部を変更する

  13. 13

    同じデータフレームの他の列に基づいてスコア列を更新する

  14. 14

    pandasデータフレームの値に基づいて文字列の値を更新します

  15. 15

    既存の列の隣接する値に基づいてPandasデータフレームに列を追加する

  16. 16

    複数の列に基づいて、あるデータフレームの値を他のデータフレームから減算する方法は?

  17. 17

    他の列の条件に基づいてパンダのデータフレーム列を操作する方法

  18. 18

    他の列に基づいてデータフレーム列の値を変更する

  19. 19

    既存の列の値に基づいてpandasデータフレームに新しい列を追加する

  20. 20

    他の2つのデータフレームの値に基づいて新しい列を作成する

  21. 21

    pandasデータフレームの他の3つの列に基づいて1つの列の値を変更する

  22. 22

    別のデータフレームの列値に基づいてブール列を作成する方法

  23. 23

    データフレーム内の他の列に基づいてパンダのデータフレーム列の値を変更する

  24. 24

    他の列の値に基づいてパンダデータフレーム行を作成する

  25. 25

    他のデータフレームに基づいて特定の列値を追加する

  26. 26

    pandasデータフレーム内の他の列の条件と値に基づいて新しい列を作成する

  27. 27

    時系列Pandasデータフレームの他の2つのブール列に基づいて列の状態を判別する方法は?

  28. 28

    他のパンダデータフレームからの一致する列に基づいてパンダ列を更新する最速の方法

  29. 29

    他の列のデータフレームrの値に基づいて列を追加します

ホットタグ

アーカイブ