Python 比较两个数据帧、一列,并在匹配时添加某些值?
所以我有两个Python 比较两个数据帧、一列,并在匹配时添加某些值?,python,pandas,Python,Pandas,所以我有两个数据帧 eqdf symbol qty 0 DABIND 1 1 INFTEC 6 2 DISHTV 8 3 HINDAL 40 4 NATMIN 5 5 POWGRI 40 6 CHEPET 6 premdf share strike lprice premperc d_strike 0 HINDAL 250.0 237.90 1.975620 5.086171 1 RELIND 1
数据帧
eqdf
symbol qty
0 DABIND 1
1 INFTEC 6
2 DISHTV 8
3 HINDAL 40
4 NATMIN 5
5 POWGRI 40
6 CHEPET 6
premdf
share strike lprice premperc d_strike
0 HINDAL 250.0 237.90 1.975620 5.086171
1 RELIND 1280.0 1254.30 1.642350 2.048952
2 POWGRI 205.0 201.15 1.118568 1.913995
我想比较列
premdf['share']
和eqdf['symbol']
,如果有匹配的premperc
,d_strike
,则将strike
值添加到eqdf行中存在匹配项的末尾
我试过了
eqdf.loc[eqdf['symbol']==premdf['share'],eqdf['premperc'] == premdf['premperc']]
我总是出错
ValueError:只能比较标签相同的系列对象
预期产出:
eqdf
symbol qty premperc d_strike strike
0 DABIND 1 NaN NaN NaN
1 INFTEC 6 NaN NaN NaN
2 DISHTV 8 NaN NaN NaN
3 HINDAL 40 1.975620 5.086171 250.0
4 NATMIN 5 NaN NaN NaN
5 POWGRI 40 1.118568 1.913995 205.0
6 CHEPET 6 NaN NaN NaN
正确的方法是什么
谢谢重命名
和合并
感谢您的快速回答,我实际上希望
eqdf
获得新列premperc
,d_strike
,strike
。更新问题。
eqdf.merge(premdf.rename(columns={'share': 'symbol'}), 'left')
symbol qty strike lprice premperc d_strike
0 DABIND 1 NaN NaN NaN NaN
1 INFTEC 6 NaN NaN NaN NaN
2 DISHTV 8 NaN NaN NaN NaN
3 HINDAL 40 250.0 237.90 1.975620 5.086171
4 NATMIN 5 NaN NaN NaN NaN
5 POWGRI 40 205.0 201.15 1.118568 1.913995
6 CHEPET 6 NaN NaN NaN NaN