我有一個df
Side ref_price price price_diff
0 100 110
1 110 100
我想保留price_diff基于側值的值。
if side==0:
df['price_diff']=df['ref_price']*df['price']
else if side==1:
df['price_diff']=df['ref_price']*df['price']*-1
試過了
df.loc[df.Side == 0, 'price_diff'] = (df['price']*df['ref_price'])
不作業,拋出錯誤。
uj5u.com熱心網友回復:
您可以使用"Side"column 作為條件numpy.where:
df['price_diff'] = np.where(df['Side'].astype(bool), df['ref_price']*df['price']*-1, df['ref_price']*df['price'])
或者在這種特定情況下,使用“側”列值作為 的冪-1:
df['price_diff'] = df['ref_price']*df['price']*(-1)**df['Side']
輸出:
Side ref_price price price_diff
0 0 100 110 11000
1 1 110 100 -11000
uj5u.com熱心網友回復:
您可以使用np.where:
df['price_diff'] = np.where(df['side'] == 0,
df['ref_price'] * df['price'],
df['ref_price'] * df['price'] * -1)
print(df)
# Output
side ref_price price price_diff
0 0 100 110 11000
1 1 110 100 -11000
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/444929.html
