我有 2 個類似的資料框,它們的行不相等。
DataFrame 1
------------
stockname quantity purchase_price purchase_date weight
0 BSHSL 34 102.0000 2020-09-01 0.06172
1 SBICARD 8 804.3410 2020-09-01 0.11863
2 SANGINITA 110 71.2500 2020-09-01 0.13902
3 TOUCHWOOD 218 50.1479 2020-09-01 0.19395
4 SOLARA 12 917.7250 2020-09-01 0.20000
5 SUMICHEM 41 269.8520 2020-09-01 0.20000
6 LIQUIDBEES 14 999.9900 2020-09-01 0.08668
DataFrame2
-----------
stockname quantity purchase_price purchase_date weight
5 LIQUIDBEES 12 1000.0 2020-06-26 0.25399
我試圖用 Dataframe2 的數量減去 Dataframe1 的數量,其中 Dataframe1.stockname == Dataframe2.stockname。基本上我想用Dataframe1中的差異替換數量
請建議。
謝謝
uj5u.com熱心網友回復:
這是一種方法。合并兩個DF,然后從DF2中減去數量
df['qty'] = df.merge(df2[['stockname', 'quantity']], on='stockname', how='left')['quantity_y'].fillna(0)
df['quantity'] = df['quantity'] - df['qty']
df.drop(columns=['qty'])
或者
使用 assign ,計算與 df 和 df1 數量的差異并就地更新,結果相同
df=df.assign(quantity= df['quantity'] -
df.merge(df2[['stockname', 'quantity']], on='stockname', how='left')['quantity_y'].fillna(0) )
stockname quantity purchase_price purchase_date weight
0 BSHSL 34.0 102.0000 2020-09-01 0.06172
1 SBICARD 8.0 804.3410 2020-09-01 0.11863
2 SANGINITA 110.0 71.2500 2020-09-01 0.13902
3 TOUCHWOOD 218.0 50.1479 2020-09-01 0.19395
4 SOLARA 12.0 917.7250 2020-09-01 0.20000
5 SUMICHEM 41.0 269.8520 2020-09-01 0.20000
6 LIQUIDBEES 2.0 999.9900 2020-09-01 0.08668
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/496120.html
上一篇:根據通用日期時間格式DD/MM/YYYY創建新列,但遇到錯誤“ValueError:binsmustincreasemonotonically.”
