我有兩個資料框 - 第一個資料集是 -

第二個資料集是 -

在兩個資料集中都有相同的列,但我想根據執行價格列減去值,如果兩個資料集 Strick_price 匹配,則減去這些收盤價。
Example -
Dataset1 dataset2 Close
29500 29500 Close - Close
30000 Not Match Nan
30300 30300 Close - Close
30400 30400 Close - Close
30500 Not Match Nan
我不明白,我該怎么做?請幫我解決這個問題。
uj5u.com熱心網友回復:
我們可以通過合并雙方開始df_1和df_2匹配的值df_1上strike_price使用left merge:
>>> df = pd.merge(df_1[['strike_price', 'close']],
... df_2[['strike_price', 'close']],
... how='left',
... left_on=['strike_price'],
... right_on=['strike_price'],
... suffixes=['_df_1',
... '_df_2'])
>>> df
strike_price close_df_1 close_df_2
0 30000 3131.20 3000.0
1 30300 2836.30 NaN
2 30400 2736.95 2744.0
3 30500 2630.00 2800.0
4 30600 2530.60 2650.6
然后,我們可以構建一個列diff減去列close_df_1并close_df_2獲得預期結果:
>>> df['diff'] = df['close_df_1'] - df['close_df_2']
>>> df
strike_price close_df_1 close_df_2 diff
0 30000 3131.20 3000.0 131.20
1 30300 2836.30 NaN NaN
2 30400 2736.95 2744.0 -7.05
3 30500 2630.00 2800.0 -170.00
4 30600 2530.60 2650.6 -120.00
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/357466.html
上一篇:鍵在字串中的熊貓資料幀映射查找表
下一篇:使用scrapy將值存盤到鍵中
