如何将我的价格 df 转换为基于 100 的回报 df

Posted

技术标签:

【中文标题】如何将我的价格 df 转换为基于 100 的回报 df【英文标题】:How can I convert my df of prices into a df of returns on 100 based 【发布时间】:2020-05-08 00:40:49 【问题描述】:

我想从我的数据框计算回报并生成一个新的 df,其中我的值基于 100。

例子:

Date         Ubam US Corporate
18/02/2014   185.31
19/02/2014   185.17  
20/02/2014   185.06
Date         Ubam US Corporate
18/02/2014   100
19/02/2014   99.9992 <- 100+(1*((185.17/185.31)-1))
20/02/2014   99.9987

这是我的 df

https://www.dropbox.com/transfer/AAAAAFv-jeRgpk4_DpH7R4eCajykisZs0_fuJL8FP08AAUZQxXxou90

有没有自动计算的函数?

谢谢

【问题讨论】:

Python,是熊猫吗? 我正在使用 Rstudio 知道了,那么请记住,每当您在 so 上发布问题时 - 始终在您的标签中注明它所关注的技术。这是第一个标签,你应该放 ;) 【参考方案1】:

如果df 是您的数据:

df <- data.frame(Date=c('18/02/2014','19/02/2014','20/02/2014'), Ubam = c(185.31, 185.17, 185.06))

您可以先创建一个价格变化向量,以 100 作为第一个条目:

price_changes <- c(100, tail(df[, 'Ubam'], -1) / head(df[, 'Ubam'], -1) - 1)

然后你可以做一个累计求和,在df中创建一个新的价格指数作为一个新列:

df$rebased_index <- cumsum(price_changes)
df
#output
    Date       Ubam rebased_index
1 18/02/2014 185.31     100.00000
2 19/02/2014 185.17      99.99924
3 20/02/2014 185.06      99.9986

【讨论】:

嗨,我的 df 是从 18/02/2014 到 15/01/2020 的 n 行 n 列的 df。我所做的是: VLPFI.rent

以上是关于如何将我的价格 df 转换为基于 100 的回报 df的主要内容,如果未能解决你的问题,请参考以下文章

如何将Pandas DataFrame转换为类似字节的对象

如何将我的基于 javascript/React Native 的应用程序转换为 .ipa 进行部署?

Spark 2.0:如何将元组的 RDD 转换为 DF [重复]

如何将我的 jQuery 代码转换为 AngularJS?

R:将每日收益转换为每月收益

如何将类别变量转换为一个热标签