gpt4 book ai didi

python - 我想明智地交换行条件

转载 作者:行者123 更新时间:2023-12-05 02:57:57 24 4
gpt4 key购买 nike

我们有 4 列 Credit、Debit、narration 和 Balance。在 credit 列中的金额将记入 Balance 列借方栏金额将从余额栏中扣除。我给一个datafarm供引用

   Narration  Credit  Debit  Balance
1 Abc 15.0 Nan 15.0
2 Qwe NaN 5.0 10.0
3 Wer NaN 2.0 7.0
4 opr Nan 3.0 5.0
5 Yur 6.0 NaN 11.0

我有这样的 datafarme,但是在这个 3 和 4 索引上,借记金额与余额值不匹配,所以我想要可以与余额匹配的 datafarme..

  Narration  Credit  Debit  Balance
1 Abc 15.0 Nan 15.0
2 Qwe NaN 5.0 10.0
3 opr NaN 3.0 7.0
4 wer Nan 2.0 5.0
5 Yur 6.0 NaN 11.0

我想要可以与 Credit Debit 值相匹配的 datafarme。它只有 5 行,例如我有 500 行,所以我可以检查余额是否与 Credit Debit 金额相匹配。

最佳答案

您还可以尝试以下使用 np.selectdf.mask() 的一些条件:

s=df['Credit'].fillna(df['Balance']).diff().abs()
cond1=s.ne(df['Debit'])
cond2=s.eq(df['Debit'].shift(-1))
cond3=s.shift().eq(df['Debit'])

values=np.select([(cond1[:,None]&cond2[:,None]),(cond1[:,None]&cond3[:,None])],
[df.shift(-1),df.shift()])

final=df.mask(cond1&(cond2|cond3),values)
final['Balance']=df['Balance']

  Narration Credit Debit  Balance
1 Abc 15 NaN 15.0
2 Qwe NaN 5 10.0
3 opr NaN 3 7.0
4 Wer NaN 2 5.0
5 Yur 6 NaN 11.0

关于python - 我想明智地交换行条件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59502129/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com