[英]Copy conditional values from one column to another
給定這樣的df:
Date Category Debit Credit
2020-01-05 Utility 55.32 NA
2020-01-05 Movie 20.01 NA
2020-01-05 Payment NA -255.32
2020-01-05 Grocery 97.64 NA
如何將所有負信用值移動到借方列(並刪除空的信用列)?
Date Category Debit
2020-01-05 Utility 55.32
2020-01-05 Movie 20.01
2020-01-05 Payment -255.32
2020-01-05 Grocery 97.64
這將找到負值:
df.loc[df['Credit'] < 0]
但這不起作用(最小的 pandas 技能)
def creditmover():
If df.loc[df['Credit'] < 0]:
df.loc[df['Debit']]=df.loc[df['Credit']]
謝謝!
根據你的邏輯,你可以這樣做:
# where credit is < 0
s = df['Credit'] < 0
# copy the corresponding values
df.loc[s, 'Debit'] = df.loc[s, 'Credit']
# drop Credit
df = df.drop('Credit', axis=1)
Output:
Date Category Debit
0 2020-01-05 Utility 55.32
1 2020-01-05 Movie 20.01
2 2020-01-05 Payment -255.32
3 2020-01-05 Grocery 97.64
注意:如果在Credit
<0
的情況下, Debit
始終為Na
,反之亦然,那么您可以簡單地執行以下操作:
df['Debit'] = df['Debit'].fillna(df['Credit'])
df = df.drop('Credit', axis=1)
我們可以做pop
df.loc[df.pop('Credit')<=0,'Debit']=df.Credit
df
Date Category Debit
0 2020-01-05 Utility 55.32
1 2020-01-05 Movie 20.01
2 2020-01-05 Payment -255.32
3 2020-01-05 Grocery 97.64
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.