缺少d的数据帧合并

2024-09-30 20:29:33 发布

您现在位置:Python中文网/ 问答频道 /正文

我有2个数据帧:

df.head()
Out[2]: 
   Unnamed: 0 Symbol        Date      Close
0        4061      A  2016-01-13  36.515889
1        4062      A  2016-01-14  36.351784
2        4063      A  2016-01-15  36.351784
3        4064      A  2016-01-19  36.590483
4        4065      A  2016-01-20  35.934062

以及

dfw.head()
Out[3]: 
         Symbol       Weight
0  A              (0.000002)
1  AA              0.000112 
2  AAC            (0.000004)
3  AAL             0.000006 
4  AAMC            0.000002 

问题: 不是每个符号如果df在dfw中都有权重。如果没有,我想把它从我的新数据帧(它的所有日期)。如果符号在dfw中,我想将weight in与df合并,这样每行都有symbol、date、close和weight。我尝试了以下方法,但得到了NaN值。我也不知道如何删除所有符号没有重量,即使我是成功的。你知道吗

dfall = df.merge(dfw, on='Symbol', how='left')

dfall.head()
Out[14]: 
   Unnamed: 0 Symbol        Date      Close Weight
0        4061      A  2016-01-13  36.515889    NaN
1        4062      A  2016-01-14  36.351784    NaN
2        4063      A  2016-01-15  36.351784    NaN
3        4064      A  2016-01-19  36.590483    NaN
4        4065      A  2016-01-20  35.934062    NaN

Tags: 数据dfclosedate符号nanoutsymbol
1条回答
网友
1楼 · 发布于 2024-09-30 20:29:33
df_all = df[df.Symbol.isin(dfw.Symbol.unique())].merge(dfw, how='left', on='Symbol')

我不知道你为什么会得到这些价值观。也许你的符号里有空格?您可以通过:dfw['Symbol'] = dfw.Symbol.str.strip()df执行同样的操作。你知道吗

>>> df_all
Unnamed: 0 Symbol        Date      Close      Weight
   0  4061      A  2016-01-13  36.515889  (0.000002)
   1  4062      A  2016-01-14  36.351784  (0.000002)
   2  4063      A  2016-01-15  36.351784  (0.000002)
   3  4064      A  2016-01-19  36.590483  (0.000002)
   4  4065      A  2016-01-20  35.934062  (0.000002)

相关问题 更多 >