为了账号安全,请及时绑定邮箱和手机立即绑定

使用来自单独数据帧的最新数据更新一个数据帧

使用来自单独数据帧的最新数据更新一个数据帧

有只小跳蛙 2021-05-30 03:01:25
我正在尝试使用存储在单独数据框中的价格更新头寸数据框。我想将最新价格放入“ last_price”列中,并将该价格的数据放入“ last_date”列中。import datetimefrom scipy import statsimport numpy as npimport pandas as pddf_portfolio = pd.DataFrame({ 'amount' : np.random.randint(low=0, high=10,     size=(4)),                    'timestamp' : pd.Timestamp('20130102'),                    'exch' : pd.Categorical(["e1","e1","e2","e2"]),                    'token' : pd.Categorical(["BTC","ETH","ETH","LTC"])               })df_ETH_price = pd.DataFrame({    'date': ('2018-08-11','2018-08-12','2018-08-13'),    'price' : (322.11,319.57,286.50)        })df_portfolio['last_price'] = np.nandf_portfolio['last_date'] = "?"print(df_portfolio)print (df_ETH_price)预期结果如下:   amount exch  timestamp token  last_price last_date0       7   e1 2013-01-02   BTC         NaN         ?1       4   e1 2013-01-02   ETH         286.50      2018-08-132       2   e2 2013-01-02   ETH         286.50      2018-08-133       9   e2 2013-01-02   LTC         NaN         ?
查看完整描述

3 回答

?
一只名叫tom的猫

TA贡献1906条经验 获得超3个赞

我会在您的价格跟踪数据框中创建一个标记,因此很明显正在谈论哪种代币:


m = df_ETH_price.assign(token='ETH').tail(1)

然后合并:


df_portfolio.merge(

    m, how='outer'

).rename(columns={'date': 'last_date', 'price': 'last_price'})

   amount  timestamp exch token   last_date  last_price

0       2 2013-01-02   e1   BTC         NaN         NaN

1       0 2013-01-02   e1   ETH  2018-08-13       286.5

2       3 2013-01-02   e2   ETH  2018-08-13       286.5

3       7 2013-01-02   e2   LTC         NaN         NaN


查看完整回答
反对 回复 2021-06-01
  • 3 回答
  • 0 关注
  • 111 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信